Video návod jak začít s STM32. Krok za krokem s Robertem Ferancem a Greidi Ajalikem.

Stručně: Pro začátek s STM32 potřebujete vývojovou desku Nucleo (např. F401RE s integrovaným ST-Link), bezplatné STM32CubeIDE a USB kabel. V grafickém konfigurátoru nastavíte piny a hodiny, kód píšete v C pomocí HAL knihoven. Základní kroky: blikání LED přes HAL_GPIO_WritePin, obsluha tlačítka přes přerušení (callback HAL_GPIO_EXTI_Callback) a komunikace s PC přes HAL_UART_Transmit.

Jak začít s STM32 je často kladená otázka. Jednou z možností je vzít mikrokontrolér podporovaný v Arduino IDE (díky STM32duino). To je jednoduchá cesta, ale ne vždy dostatečná. Druhá možnost je pojmout STM32 od podlahy — přes STM32CubeIDE a HAL knihovny.

Robert Feranec společně s Greidi Ajalikem natočili podrobný video návod, kde krok za krokem provedou celým procesem od vytvoření projektu až po komunikaci s PC. Video je anglicky, ale postup je vizuální a snadno sledovatelný. Níže je textový souhrn toho, co se ve videu probírá.

Co budete potřebovat

  • STM32 Nucleo F4 board (konkrétně NUCLEO-F401RE) — vývojová deska s integrovaným ST-Link debuggerem. Nemusíte kupovat žádný JTAG programátor zvlášť.
  • STM32CubeIDE — bezplatné vývojové prostředí od ST. Pozor: od verze 2.0 (listopad 2025) je STM32CubeMX samostatný nástroj — už není integrovaný v CubeIDE (viz sekce Aktuální stav).
  • USB kabel pro připojení Nucleo desky k PC.

Založení projektu

Greidi ukazuje, jak v CubeIDE založit nový projekt pro konkrétní Nucleo desku. Několik praktických tipů z videa:

V názvech projektů a workspace nepoužívejte mezery — nahraďte je podtržítkem. Některé kompilátory mají problémy s mezerami v cestách a nic vám to neřeknou.

Pokud máte vlastní desku (ne Nucleo), vyberete v MCU/MPU selectoru přímo číslo čipu. Pro Nucleo desky je jednodušší Board Selector — vyberete desku a CubeIDE předkonfiguruje všechny periférie automaticky.

Při prvním spuštění projektu doporučuje Greidi firmware STLINK upgradovat — v menu Help → ST-Link Upgrade. Starší firmware na desce může způsobit problémy s programováním.

Grafická konfigurace – IOC soubor

Po vytvoření projektu se otevře grafický konfigurátor (IOC soubor), kde je vidět celý čip s nakonfigurovanými piny. Zelené piny jsou aktivní — u Nucleo F4 je předkonfigurovaný zelený LED na PA5, tlačítko na PC13, USART2 a debug rozhraní.

Záložka Clock Configuration ukazuje stromovou strukturu hodin. Interní oscilátor (16 MHz) se přes PLL násobí na 84 MHz systémový takt. Perifériím (APB) se pak přidělují nižší frekvence. Pro úsporu energie se dají hodiny snížit — stačí přepsat cílovou frekvenci a systém najde řešení automaticky.

Všechny schémata Nucleo desek jsou veřejně dostupné na webu ST — stojí za to si je stáhnout a porovnat konfiguraci v CubeIDE se skutečným zapojením.

Blikání LED – GPIO a Delay

Kód se píše do main.c, do sekce označené /* USER CODE BEGIN */ a /* USER CODE END */. Cokoliv mimo tyto sekce se při regeneraci kódu z IOC souboru přepíše.

Pro blikání LED stačí dvě HAL funkce:

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET) — zapne LED (třetí parametr GPIO_PIN_RESET ji vypne).
HAL_Delay(1000) — pauza 1000 ms.

Celý blikací cyklus běží v nekonečné smyčce while(1). Jak zjistit, jaké funkce jsou k dispozici? Greidi doporučuje otevřít HAL zdrojové soubory ve složce Drivers — pravým kliknutím na funkci → Open Declaration.

Přerušení – tlačítko jako interrupt

V IOC souboru se PC13 (tlačítko) nakonfiguruje jako External Interrupt s falling edge detekcí. Proč falling? Tlačítko má pull-up rezistor — v klidovém stavu je signál vysoký, stisknutí ho stáhne k zemi.

Po uložení IOC a regeneraci kódu se v stm32f4xx_it.c objeví nový handler. Ten volá callback funkci HAL_GPIO_EXTI_Callback, která je definovaná jako __weak — to znamená, že ji můžete přepsat vlastní verzí kdekoliv v kódu.

Do callback funkce stačí vložit: HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5)

Důležité pravidlo: v přerušení nikdy nepoužívejte delay. Přerušení má být co nejkratší — provést akci a vrátit se. Delay v přerušení může způsobit nestabilitu nebo chyby kompilátoru.

Pokud máte víc přerušení na různých pinech, v callback funkci rozlišíte zdroj přes parametr GPIO_Pin a podmínku if.

UART – komunikace s PC

USART2 je na Nucleo desce předkonfigurovaný a propojený přes ST-Link s USB — na PC se objeví jako virtuální COM port. Žádný externí převodník nepotřebujete.

Odeslání dat: HAL_UART_Transmit(&huart2, (uint8_t*)"Hello Worldn", 12, 100)

Parametry: handle UART periférie (ukazatel), data jako pole bytů, délka, timeout v ms. Pro sledování výstupu na PC lze použít terminál přímo v CubeIDE (záložka Console → Command Shell Console), nebo externí programy jako PuTTY či TeraTerm.

Debugger

Nucleo deska má integrovaný ST-Link — žádný externí JTAG nepotřebujete. Pro vlastní desky se dá koupit ST-Link V3 (cca 35 USD na DigiKey/Mouser).

V CubeIDE kliknete na ikonu brouka (Debug). Na řádek kódu poklepním přidáte breakpoint. Pak máte k dispozici Step Over (přeskočí funkci), Step Into (vejde dovnitř funkce) a Resume (pokračuje do dalšího breakpointu).

Debugger je neocenitelý pro pochopení, co se v kódu skutečně děje — můžete sledovat hodnoty proměnných, procházet HAL funkce krok za krokem a zjistit, kde se program zasekne.

Aktuální stav STM32CubeIDE (2026)

Od doby natočení videa se v ekosystému STM32 změnilo několik věcí:

CubeIDE 2.0+ — od listopadu 2025 je STM32CubeMX oddělený od CubeIDE. Grafická konfigurace (IOC soubor) se teď dělá v samostatném CubeMX, kód se pak importuje do CubeIDE. Při sledování videa tedy uvidíte integrovaný konfigurátor, který v nových verzích vypadá jinak.

VS Code varianta — ST aktivně vyvíjí STM32CubeIDE for VS Code. Pro vývojáře zvyklé na VS Code je to zajímavá alternativa s podporou Copilot integrace a CI/CD workflows.

Nucleo desky — Nucleo F401RE z videa je stále v prodeji a stále funguje se současnými verzemi nástrojů. Pro nové projekty stojí za zvážení i novější řady (STM32H5, STM32C0, STM32U5).

Video

https://www.youtube.com/watch?v=dnfuNT1dPiM

Užitečné odkazy

Ptáte se

Co potřebuji pro začátek s STM32?

Vývojovou desku STM32 Nucleo (např. NUCLEO-F401RE, má integrovaný ST-Link debugger), bezplatné STM32CubeIDE a USB kabel. Žádný externí JTAG programátor kupovat nemusíte.

Jaký je rozdíl mezi STM32CubeIDE a STM32CubeMX?

CubeIDE je vývojové prostředí pro psaní a ladění kódu. CubeMX je grafický konfigurátor pinů a periférií. Od verze CubeIDE 2.0 (listopad 2025) jsou to dva samostatné nástroje — dříve byl CubeMX integrovaný uvnitř CubeIDE.

Proč nepoužívat delay v přerušení?

Přerušení má být co nejkratší. Delay v něm blokuje procesor a může způsobit nestabilitu systému, zmeškaní dalších přerušení nebo chyby kompilátoru. Akci proveďte a okamžitě se vraťte.

Potřebuji externí UART převodník pro komunikaci s PC?

Na Nucleo deskách ne. USART2 je propojený přes integrovaný ST-Link s USB — na PC se objeví jako virtuální COM port. Stačí otevřít terminál (PuTTY, TeraTerm nebo konzoli v CubeIDE).

Dá se STM32 programovat i ve VS Code?

Ano. ST vyvíjí STM32CubeIDE for VS Code s podporou všech STM32 MCU, Copilot integrací a CI/CD workflows. Je to oficiálně podporovaná alternativa ke klasickému Eclipse-based CubeIDE.
Sdílejte článek:
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku

Související články

Arduino je velmi populární platforma s rozsáhlou komunitní podporou.

Další články o STM32(F7): Tutorial: STM32F746 (STM32F7 Discovery) – Tlačítkem rozsvítit/zhasnout LED Tutorial: STM32F746 (STM32F7 Discovery) – jak zapnout LED (ovládání GPIO) STM32F746 discovery a IDE AC6 (System Workbench for STM32) Jak začít s moderními mikrokontroléry a proč – STM32…

Ve druhém díle o STM32duino si ukážeme práci s digitálními vstupy a výstupy.

Náš čtenář LuBoss se na foru podělil o své zkušenosti s touto platformou pro STM32 sehnatelnou za pár dolarů a populárním vývojovým studiem Arduino.

Ve třetím díle si ukážeme použití snad nejpopulárnější sběrnice – USART, v Arduino světě je nazývána jako Serial.

Ve čtvrtém díle našeho seriálu o STM32duino se konečně podíváme na slibovanou I2C sběrnici.

Trendy