Článek vyšel poprvé v dubnu 2019, kdy STM32CubeIDE vzniklo. V září 2026 je kompletně přepsaný podle testu na Nucleo-F767ZI se STM32CubeIDE 2.2.0 a STM32CubeMX 6.18.1.
Nainstalujete STM32CubeIDE, dáte File → New a čekáte známou obrazovku s výběrem mikrokontroléru, clock tree a pinoutem. Nepřijde. Od verze 2.0.0 z listopadu 2025 CubeIDE konfigurátor CubeMX neobsahuje a většina návodů, včetně původní verze tohoto článku, popisuje stav, který už neplatí.
Prošel jsem celý postup od založení projektu po ladění na desce. Tady je, co se skutečně změnilo, co v IDE zůstalo a kde se dá spolehlivě ztratit hodina.

Co se změnilo a proč
V řadě 1.x bylo CubeMX zabudované přímo v IDE. Od 2.0.0 jsou to dvě samostatné aplikace s vlastními instalacemi a vlastním cyklem aktualizací. ST to zdůvodnilo pomalým během, problémy se stabilitou napříč systémy a monolitickými aktualizacemi. CubeIDE se má soustředit na editaci, překlad a ladění.
Praktické důsledky: instalace se zmenšila zhruba z 3,7 GB na 2,9 GB, zmizel požadavek na přihlášení (pocházel z CubeMX) a verze obou nástrojů jde zmrazit nezávisle, takže u staršího projektu udržíte přesně tu kombinaci, ve které vznikl.
Výběr čipu v IDE zůstal, konfigurace ne
Tohle se často popisuje nepřesně. Projekt se v CubeIDE 2.2.0 zakládá přes File → STM32 Project Create/Import a volba STM32CubeIDE Empty Project nabídne plnohodnotný MCU/MPU Selector s 3 257 čipy a Board Selector s 233 deskami. Funguje to i bez nainstalovaného CubeMX, databáze součástek je součástí IDE.
Jenže výsledný projekt má jen startup soubor, linker skripty, prázdný main.c a nastavené přepínače překladače pro dané jádro. Žádný .ioc, žádný HAL, žádné CMSIS. Vybraná deska se do projektu nepropíše ničím, LD1 ani USART3 na virtuálním COM portu ST-LINKu v něm neexistují. Výběr rozhoduje o startupu, linkeru, compiler flagách a o SVD souboru pro zobrazení registrů v debuggeru. Nic víc.
Pro čistý bare-metal bez HAL to stačí. Blikátko na LD1 jsem si v něm napsal přes registry a deska bliká. Pro standardní HAL projekt je to ale slepá cesta.

Jak dnes založit HAL projekt
- V STM32CubeMX vyberte čip nebo desku, nakonfigurujte periferie a hodiny.
- V Project Manageru přepněte Toolchain / IDE na STM32CubeIDE. Výchozí hodnota je EWARM, tedy IAR, a bez přepnutí dostanete projekt pro cizí prostředí.
- Generate Code a v dialogu tlačítko Open Project.
Open Project se v mém testu nezeptal na nic. Projekt se sám naimportoval do už běžící instance CubeIDE a objevil se v Project Exploreru. V první verzi 2.0.0 tohle tlačítko chybělo a projekt se importoval ručně.

Soubor .ioc a regenerace
.ioc zůstává zdrojem konfigurace, jen ho otevírá jiná aplikace. Dvojklik v CubeIDE spustí samostatný CubeMX bez nastavování asociací v systému. Počítejte ale s tím, že studený start trvá: na pracovním notebooku uběhlo od dvojkliku k použitelnému konfigurátoru zhruba 75 sekund. Podruhé je to okamžité, CubeMX zůstává běžet.
Ve verzi 2.0.0 bylo po každém Generate Code nutné stisknout F5, jinak IDE nové soubory nevidělo. Od 2.1.0 se projekt obnovuje sám a ověřil jsem, že jde o skutečné sledování souborového systému: po přidání I²C1 v CubeMX byly i2c.c a i2c.h ve stromu do tří sekund, a soubor zapsaný do Core/Src zvenčí, bez jakéhokoli kliknutí do IDE, se objevil do deseti sekund.
Co přežije regeneraci
Do vygenerovaného main.c jsem dal čtyři značky dovnitř bloků USER CODE BEGIN/END a jednu mimo ně, mezi MX_I2C1_Init(); a další USER CODE blok. Pak jsem v CubeMX přidal SPI1 a přegeneroval. Čtyři značky uvnitř zůstaly, pátá zmizela bez varování a na jejím místě je MX_SPI1_Init();.
Volba Backup previously generated files when re-generating je v Code Generatoru ve výchozím stavu vypnutá, takže nevznikne ani záloha. Pravidlo: všechno mimo USER CODE bloky je pro CubeMX jednorázový výstup, který při každém generování přepíše.

Past: dodatečné .ioc do prázdného projektu
Kdo začne Empty projektem a později chce konfigurátor, v IDE žádnou cestu nenajde. Kontextové menu nabízí jen Configure and Detect Nested Projects, žádný převod na CubeMX projekt.
Zkusil jsem obejít to přes CubeMX: Save Project As do složky existujícího Empty projektu, toolchain STM32CubeIDE, Generate. CubeMX ochotně zapsal .ioc, Core/ i Drivers/, ale .cproject nechal být. Projekt má najednou dva main(), starý v Src/ a nový v Core/Src/.
Build přesto projde, nula chyb, nula varování. Kolize symbolů nenastane, protože Core/ ani Drivers/ nejsou v build configuration. Sestaví se pořád starý registrový kód a změny z konfigurátoru se nikdy neprojeví. Bez chybové hlášky se to hledá dlouho. Pokud chcete přejít z Empty projektu na HAL, založte nový projekt z CubeMX a kód přeneste ručně.

CMake: projekt bez vazby na IDE
V CubeMX můžete místo výstupu pro STM32CubeIDE zvolit CMake. Objeví se volba Default Compiler/Linker s možnostmi GCC a ST Arm Clang; ten druhý ve výchozí instalaci CubeIDE 2.2.0 není. Vygenerovaný projekt staví do build/Debug, regenerovanou část drží v cmake/stm32cubemx/ jako knihovnu a kořenový CMakeLists.txt generuje jen jednou, takže se dobře verzuje v Gitu.
CubeIDE má vlastní šablonu STM32 CMake Project, která se od výstupu CubeMX liší rozložením i toolchain souborem, obě ale IDE naimportuje a sestaví přes Ninju. Stejný projekt přeložíte i z příkazové řádky:
cmake --preset Debug
cd build/Debug
ninja
Pozor, cmake --preset se pouští z kořene projektu, ne z build adresáře. Kdo je zvyklý na cd build && cmake .., dostane hlášku, že CMakePresets.json nebyl nalezen.

Co zůstalo beze změny
Build, flash a ladění fungují jako dřív. Flash na Nucleo proběhl přes ST-LINK GDB server, debug session se zastavila v main(), breakpointy drží. Bug z verze 2.1, kdy se po flashi otevíral startup assembler, se na 2.2.0 neprojevil. V nastavení ladění přibylo Enable SWD multi-drop, tedy ladění více čipů na jedné sběrnici pro ST-LINK GDB server, OpenOCD i J-Link. Při prvním debugu vyskočí výzva k aktualizaci firmwaru ST-LINKu, odmítnout ji ničemu nevadí.
Verze z testu
| Komponenta | Verze |
|---|---|
| STM32CubeIDE | 2.2.0 (26. 6. 2026), Eclipse 2025-12, CDT 12.3.0 |
| STM32CubeMX | 6.18.1 |
| STM32Cube FW_F7 | 1.17.4 |
| arm-none-eabi-gcc | 14.3.1 |
| STM32CubeProgrammer CLI | 2.23.0 |
| CMake / Ninja | 4.3.1 / 1.13.2 |
Stažení firmware balíků v CubeMX nevyžaduje ST účet. Balík FW_F7 o 1 157 MB se rozjel po odsouhlasení licence, bez přihlašovacího dialogu.
CubeMX2, HAL2 a VS Code
Stav k září 2026, z dokumentace ST, na Nucleo-F767ZI se to netestuje. ST v březnu 2026 představilo STM32CubeMX2 a HAL2 pro nové řady počínaje STM32C5. Klasické CubeMX ale nenahrazují, stávající rodiny na něm zůstávají a oba nástroje běží paralelně. V CubeIDE 2.2.0 už je importér STM32CubeMX2 Project. Pro C5 doporučuje ST formát projektu CMake a buď klasické CubeIDE, nebo STM32CubeIDE for VS Code, na které se podle ST přesouvá hlavní vývoj, zatímco Eclipse verze zatím nabízí propracovanější ladění.
Co používat v roce 2026
- Zavedené řady a HAL v1: CubeMX pro konfiguraci, CubeIDE 2.2 pro kód a ladění.
- Git, CI, tým: generovat rovnou CMake projekt.
- Bare-metal bez HAL: Empty Project v CubeIDE stačí, CubeMX nepotřebujete.
- STM32C5 a novější: CubeMX2, HAL2 a CMake.
STM32CubeIDE nezmizelo ani nezhoršilo, změnila se jeho role. Z monolitu s konfigurátorem je editor, překladač a debugger, a konfigurace žije vedle. Staré návody proto nepopisují horší verzi téhož, ale jiný model práce.
Kam dál
- Oficiální shrnutí novinek v STM32CubeIDE 2.0.0
- STM32CubeIDE 2.0.0 Tutorial na STM32World, krokový průchod včetně migrace projektů z 1.x
- Stažení STM32CubeIDE a STM32CubeMX







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