Dołączenie płytek STM32 do Arduino IDE
Dodaj link do płytek STM32 w Preferencjach: https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/main/package_stmicroelectronics_index.json
Zainstaluj płytki STM32 MCU based boards by STMicroelectronics
Wgrywanie kodu przez USB
Przykład na podstawie STM32F401CCU6 Blackpill
Zainstaluj program STM32CubeProgrammer: https://www.st.com/en/development-tools/stm32cubeprog.html
Przełącz płytkę w tryb bootloader:
- Naciśnij i przytrzymaj przycisk BOOT0
- Naciśnij i zwolnij przycisk NRST (reset), aby zrestartować procesor
- Zwolnij przycisk BOOT0
Zastosuj ustawienia w Arduino IDE, wybierz odpowiednią płytkę oraz Upload method: STM32CubeProgrammer (DFU)
Wgrywanie kodu przez programator ST LINK
Pobierz i zainstaluj sterowniki do ST LINK
https://www.st.com/en/development-tools/stsw-link009.html
Połączenie STM32 z ST LINK za pomocą 4 przewodów: 3.3V – 3.3V, GND – GND, SWIO – SWDIO, SWCLK – SWCLK
Po podłączeniu ST LINK połączonego z STM32 do komputera, w menedżerze urządzeń powinnien pokazać się STM32 STLink

Wybierz ustawienia do wgrania programu:
Zastosuj ustawienia w Arduino IDE, wybierz odpowiednią płytkę oraz Upload method: OpenOCD STLink (SWD)
Program blink
#define LED_BUILTIN PC13
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Program włączający LED za pomocą przycisku
#define USER_BUTTON PA0
#define LED_BUILTIN PC13
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(USER_BUTTON, INPUT_PULLUP);
}
void loop() {
int buttonState = digitalRead(USER_BUTTON);
if (buttonState == LOW) {
digitalWrite(LED_BUILTIN, LOW);
} else {
digitalWrite(LED_BUILTIN, HIGH);
}
delay(100);
}