Arduino je velmi populární platforma s rozsáhlou komunitní podporou.
Kromě originálních vývojových kitů Arduino můžete zakoupit desítky typů klonů ať už se stejnými mikrokontroléry, které používá i Arduino — typicky ATmega328 a SAMD21 — nebo jinými čipy jako je například ESP32 nebo ESP8266.
Mezi posledně jmenované patří i mikrokontroléry STM32. Pro ně vytvořila komunita a STMicroelectronics podporu jazyka Wiring (Arduino) v podobě knihovny STM32duino. Prvním a základním mikrokontrolérem, pro který byla knihovna vytvořena, byl STM32F103 — ten využívají velmi levné vývojové desky BluePill a BlackPill (novější verze), nebo vývojové desky od LeafLabs nazvané Maple Mini. [zdroj a seznam klonů vývojových desek]
Všechny díly seriálu o STM32duino:
STM32duino I. — Jak začít s STM32 jako Arduino
STM32duino II. — Ovládáme GPIO
STM32duino III. — Komunikujeme pomocí Serial (USART)
STM32duino IV. — Čteme teplotu a vlhkost z Si7021 (I2C sběrnice)
Podporované mikrokontroléry
Kromě komunitní podpory STM32F103 se podpora rozšířila na desítky dalších mikrokontrolérů díky STMicroelectronics a knihovně STM32duino. Každý typ je něčím jiný — nízkoodběrový, vysoký výkon, hodně typů periférie, přesný timer, přesný ADC, různá velikost FLASH a SRAM.
Přehled podporovaných STM32 desek najdete na GitHub stm32duino/Arduino_Core_STM32.
Nejčastěji podporované periférie: GPIO, UART, SPI, I2C, Timer, ADC, DAC, USB HID, USB CDC a další.
V tomto i následujících článcích budu používat originální vývojové desky Nucleo od STMicroelectronics, jmenovitě STM32F411 Nucleo-64. Ke koupi na TME.eu a Farnell.
Instalace knihovny do Arduino IDE
Instalace je velmi jednoduchá — funguje v Arduino IDE 1.x i 2.x.
Otevřete File → Preferences (na macOS Arduino IDE → Preferences) a do pole Additional Boards Manager URLs přidejte tento řádek:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Pozor — stará URL z roku 2018 (…/master/STM32/package_stm_index.json) již nefunguje. Použijte výše uvedenou aktuální adresu.

V záložce Tools → Board → Boards Manager vyhledejte STM32 a nainstalujte balíček „STM32 MCU based boards“ od STMicroelectronics.
Po instalaci přejděte na Tools → Board → STM32 MCU based boards a vyberte typ vaší desky.
Nastavení pro Nucleo-64 (STM32F411)
V záložce Board vyberte Nucleo-64.

V Board part number pak vyberte přímo danou vývojovou desku s mikrokontrolérem:

Mikrokontroléry STM32 mají typicky více UART rozhraní — v nabídce Serial interface si zvolte, které chcete použít.

Záložka USB interface označuje možnost použití hardwarového USB. STM32duino podporuje USB HID i USB CDC (virtuální sériový port) — záleží na konkrétním mikrokontroléru a verzi knihovny.

Nastavení pro BluePill / BlackPill
BluePill (STM32F103C8T6) a BlackPill (STM32F401/F411) jsou nejlevnější a nejrozšířenější STM32 desky — za pár desîtek korun z AliExpressu nebo za pár stovek z českých e-shopů. Pokud máte jednu z nich, nastavení se mírně liší od Nuclea.
BluePill (STM32F103):
- Board: Generic STM32F1 series
- Board Part Number: BluePill F103C8 (nebo F103CB pro 128KB verzi)
- Upload method: STM32CubeProgrammer (Serial)
BlackPill (STM32F411):
- Board: Generic STM32F4 series
- Board Part Number: BlackPill F411CE
- USB Support: CDC (generic „Serial“ supersede U(S)ART)
- Upload method: STM32CubeProgrammer (DFU)
Nahrání kódu
Nucleo a Discovery desky obsahují vestavěný programátor STLink v2.1 — připojí se k počítači jako klasický flash disk. Arduino IDE při volbě Mass Storage zkompilovaný kód zkopíruje automaticky. Druhou možností je STLink pro starší typy.
BluePill / BlackPill STLink vestavěný nemají. Potřebujete buď:
- STLink V2 — externí debugger/programátor (~150 Kč), nejspolehlivější metoda
- USB-UART převodník (CH340, CP2102) + nastavení BOOT0 do polohy 1 pro bootloader mód
Pro obě metody platí, že Arduino IDE vyžaduje nainstalovaný STM32CubeProgrammer jako externí nástroj. Stáhnete ho zdarma na webu STMicroelectronics (nutná bezplatná registrace).

Po kompilaci si můžete zvolit úroveň optimalizace kódu. Pro ladění (debugging) v Arduino IDE 2.x: v menu Sketch povolte Optimize for Debugging a IDE se připojí k vestavěnému debuggeru přes STLink.

První program — blikání LED
Zda všechno funguje, vyzkoušíme klasickým programem pro blikání vestavěné LED.
// setup se spustí jednou po resetu nebo zapnutí
void setup() {
// nastav vestavěnou LED jako výstup
pinMode(LED_BUILTIN, OUTPUT);
}
// loop se opakuje donekonecna
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // LED zapnout
delay(500);
digitalWrite(LED_BUILTIN, LOW); // LED vypnout
delay(500);
}
Pozor pro BluePill/BlackPill: vestavěná LED je na pinu PC13, ne na standardním Arduino pinu 13. Pokud LED_BUILTIN nefunguje, nahradte ho přímo PC13.
Funguje? Výborně. V příštím článku si trochu více „ošaháme“ GPIO.
Pokud se vám článek líbil, pošlete odkaz i dalším bastlířům s hashtagem #STM32duino








Žádné sociální komentáře k dispozici.