====== STM32CubeIDE ====== Jedno z možných vývojových prostředí pro procesory rodiny STM s možností předkonfigurování periferií. ====== Instalace ====== Ze stránky ST microelectronics stáhnout [[https://www.st.com/en/development-tools/stm32cubeide.html | STM32CubeIDE ]] a poté nainstalovat podle instalačního procesu. Před stažením bude vyžadováno přihlášení nebo zadání emailu a jména pro stažení softwaru. Případně je možné stáhnout z [[https://owncloud.cesnet.cz/index.php/s/epXCLHZVb0m1SNk|OwnCloudu]]. V některých případech bude třeba stáhnout a nainstalovat ovladač pro Virtuální COM port, který najdete opět na stránkách ST - [[https://www.st.com/en/development-tools/stsw-stm32102.html|Ovladač ke stažení zde]] přes přihlášení nebo z [[https://owncloud.cesnet.cz/index.php/s/epXCLHZVb0m1SNk|OwnCloudu]] ====== Spouštění STM32CubeIDE ====== Při každém spuštění bude vyžadováno zvolení pracovního adresáře (workspace), kde se bude Váš kód nacházet. Můžete využít výchozí cestu do domovského adresáře nebo jakoukoliv jinou cestu. Na následujícím obrázku je znázornění vytvoření pracovního adresáře ve výchozím umístění. {{:courses:b2m37mam:tutorials:ide:selectworkspace.png?400|}} ==== Založení projektu ==== Nový projekt založíme přes menu **File -> New -> STM32 project**, kde následně vybereme procesor se kterým chceme pracovat. Případně je možnost si zvolit vlastnosti procesoru na základě našich požadavků na periferie, výkon apod. V rámci cvičení budeme používat jeden ze dvou vývojových kitů Nucleo s procesory **STM32F401RE** nebo STM32F446RE a tomu odpovídají vývojové desky **NUCLEO-F401RE** nebo **NUCLEO-F446RE**, které naleznete v záložce Board Selector {{:courses:b2m37mam:tutorials:ide:selectboard_mcu.png|}} Následuje pojmenování projektu a volby programovacího jazyka. Nám bude stačit jazyk C, ale kdo bude chtít může zvolit i C++. Obojí bude fungovat dobře. V posledním kroku zvolte, že chcete inicializovat základní periferie procesoru (UART, RCC, LED, BTN apod.). Tím se nastaví základní periferie, co jsou již na desce jako namapování LEDky (PA5) a Tlačítka (PC13), frekvence procesoru na 84 MHz nebo 42 MHz (podle bloku procesoru) Pokud existuje novější knihovna k dané řadě procesoru nebo na počítači ještě není stažená, bude následně stažen balík cca 700 MB s knihovnami a příklady ===== První program ===== Nalevo se nachází stromová struktura souborů, kde hlavičkové soubory jsou ve složce Inc a zdrojové soubory ve složce Src. Již po vytvoření projektu je zde několik souborů, které popisují daný procesor, nastavují periferie, řeší obsluhu přerušení apod. Pro první program bude nejdůležitejší soubor main.c, který obsahuje funkce a metody jak pro inicializaci procesoru, tak samotnou nekonečnou smyčku while(1). Při použití STM32CubeIDE se zde nachází několik řádků s komentáři, které je dobré zde ponechat (begin a end of user code), protože když by se projekt přenastavoval, tak vše, co je uvnitř "user code" bude zachováno a ostatní bude přepsáno novou konfigurací. Základní program, který bude blikat s LEDkou může vypadat následovně při zachování výchozího nastavení // vlozit makro na zacatek main.c #define togglebit(reg, bit) ((reg) ^= (1U << (bit))) // do hlavni smycky while(1) pote toto while (1) { // prepnuti stavu togglebit(GPIOA->ODR, 5); // smycka, co jen inkrementuje promennou, tj. ceka for(int i = 0; i < 500000; i++); } ===== Kompilace a spuštění projektu ===== Pokud nikde v projektu "nesvítí" chyba (červený kolečko), můžeme zkusit přeložit projekt buď přes menu **Project -> Build all** (případně Build Project) nebo klávesovou zkratkou **CTRL + B**. Pokud kompilace proběhla úspěšně, můžeme zkompilovaný projekt nahrát do mikrokontroléru a odzkoušet, jestli vše chodí podle našich představ přes menu Run -> Debug nebo klávesu F5. Pokud chceme jen nahrání a spuštění projektu, tak zvolíme **Run -> Run**. Následně se vše nahraje do mikroprocesoru a po spuštění (při režimu Debug) by se měla rozblikat LEDka.