- Výber a stiahnutie požadovaných vývojových platforiem pre dosky Nucleo64
- Schéma zapojenia a nastavenie hardvéru
- Začíname s STM32CubeMX pre vývojové dosky STM32 Nucleo64
- Programovanie vývojovej dosky STM32 Nucleo64 pomocou TrueSTUDIO
- Program STM32 Nucleo64 na riadenie LED pomocou tlačidla
- Ladenie a nahrávanie kódu na vývojovú dosku STM32 Necleo64 pomocou TrueSTUDIO
Mnoho z nás by malo byť oboznámených s populárnymi mikrokontrolérmi a vývojovými doskami ako Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 atď. V skutočnosti by pre väčšinu ľudí bolo Arduino ich prvou vývojovou doskou, ale keď sa poriadne prehrabeme a začneme profesionálne návrhy, čoskoro si uvedomíme obmedzenia Arduina (ako sú náklady, všestrannosť, stabilita, rýchlosť atď.) a pochopíme potrebu prechodu na natívnejšiu platformu mikrokontrolérov, ako sú PIC, STM, Renesas atď.
Už sme prebrali sekvenciu tutoriálov mikrokontrolérov PIC, ktoré sprevádzajú začiatočníkov pri učení sa mikrokontrolérov PIC. Podobne, počnúc týmto článkom, naplánujeme aj sekvenciu tutoriálov vývojovej dosky STM32 Nucleo64, ktoré môžu pomôcť absolútnym začiatočníkom učiť sa a rozvíjať sa pomocou platformy STM32. Vývojové dosky Nucleo64 sú nízkonákladová a ľahko použiteľná platforma pre profesionálnych vývojárov aj pre fandov. Ak ste na vývojových doskách STM32 Nucleo64 úplne nová, predtým, ako budete pokračovať, si pozrite toto video Nucleo64 Review, aby ste pochopili základné informácie o tejto doske. Video tiež ukazuje, ako programovať STM32 pomocou platformy ARM Mbed ale pre tento tutoriál použijeme ďalšiu bezplatnú platformu od ST Microelectronics s názvom TrueSTUDIO.
Poznámka: Existuje veľa verzií vývojových dosiek STM32 Nucleo64, konkrétna doska použitá v tomto výučbe je NUCLEO-F030R8. Túto dosku sme vybrali hlavne kvôli jej nízkym nákladom. Aj keď máte inú verziu, na začiatok vám postačí väčšina vecí popísaných v tomto návode.
Výber a stiahnutie požadovaných vývojových platforiem pre dosky Nucleo64
Začíname s akýmkoľvek mikrokontrolérom bude vyžadovať programovacie IDE, ako napríklad máme Arduino IDE pre dosky Arduino, Atmel Studio pre mikrokontrolér AVR, MP Lab pre PIC atď. Takže tu tiež potrebujeme IDE pre naše dosky STM32 Nucleo64, aby sme mohli programovať a ladiť. Rodina STM32 pozostáva z 32-bitových mikrokontrolérov, ktoré podporujú nasledujúce IDE a reťazce nástrojov:
- IAR Embedded Workbench® pre ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- Systémový pracovný stôl pre STM32
Tu pre naše výukové programy bude TrueSTUDIO použité na písanie, kompiláciu a ladenie kódu, pretože je zadarmo na stiahnutie a použitie aj na komerčné projekty bez akýchkoľvek licenčných požiadaviek. Potom sa program STM32CubeMX použije na generovanie periférnych ovládačov pre dosky STM32, aby sa uľahčilo programovanie. Na nahranie nášho programu (hexadecimálny súbor) do našej vývojovej dosky ľudia zvyčajne používajú nástroj STM32 ST-LINK Utility, ale namiesto toho na to použijeme samotné TrueSTUDIO. TrueSTUDIO má režim ladenia, ktorý umožňuje programátorom nahrať hexadecimálny súbor priamo na dosku STM32. Programy TrueSTUIO aj STM32CubeMX sa ľahko sťahujú, stačí kliknúť na nasledujúci odkaz, zaregistrovať sa a stiahnuť si nastavenie. Potom si ich nainštalujte do svojho notebooku.
- Stiahnite si STM32Cube MX
- Stiahnite si TrueSTUDIO
Schéma zapojenia a nastavenie hardvéru
Predtým, ako pristúpime k sekcii softvéru a programovaniu, pripravíme našu dosku na tento projekt. Ako už bolo spomenuté vyššie v tomto článku, budeme LED ovládať pomocou tlačidla. Teraz, ak ste videli vyššie prepojené video, mali by ste už vedieť, že vaša vývojová doska STM32 má na oboch stranách dve sady konektorových kolíkov, ktoré sa nazývajú kolíky ST Morpho. K týmto pinom sme pripojili tlačidlo a LED, ako je to znázornené na schéme zapojenia nižšie.
Zapojenie obvodov je pre tento projekt jednoduché, musíme pripojiť LED na PA5 na PORTA a prepínač na PC13 na PORTC s ohľadom na GND. Po vytvorení pripojení vyzeralo moje testovacie nastavenie takto.
Prípadne môžeme použiť aj vstavanú LED a tlačidlo na doske. Tieto vstavané LED diódy a tlačidlo sa tiež pripájajú na rovnakom kolíku, aký je znázornený na schéme zapojenia. Pridali sme externé komponenty iba pre prax. Nižšie uvedená schéma pinov vývojovej dosky STM32 bude užitočná na zistenie, kde sú jednotlivé morpho piny pripojené k základnej doske.
Začíname s STM32CubeMX pre vývojové dosky STM32 Nucleo64
Krok 1: Po inštalácii spustite STM32CubeMX, potom vyberte selektor prístupovej dosky a vyberte dosku STM32.
Krok 2: Teraz vyhľadajte dosku podľa názvu svojej dosky STM32, ako je NUCLEO-F030R8, a kliknite na dosku zobrazenú na obrázku. Ak máte inú dosku, vyhľadajte jej príslušný názov. Softvér bude podporovať všetky vývojové dosky STM32 od spoločnosti ST Microelectronics.
Krok 3: Teraz kliknite na áno, ako je to znázornené na obrázku nižšie, čím inicializujete všetky periférie v ich predvolenom režime. Neskôr môžeme požadované zmeniť podľa potreby nášho projektu.
Po kliknutí na „Áno“ sa obrazovka bude podobať obrázku nižšie a zeleným špendlíkom indikujúcim, že sú predvolene spustené.
Krok 4: Teraz môžu používatelia vybrať požadované nastavenie z kategórií. Tu v tomto výučbe prepneme LED pomocou tlačidla. Musíme teda vytvoriť pin LED ako výstup a prepínač ako INPUT.
Môžete zvoliť ľubovoľný pin, ale vyberám PA5 a meníme jeho stav na GPIO_Output, aby fungoval ako výstupný pin, ako je znázornené na obrázku nižšie.
Podobne vyberám PC13 ako GPIO_Input, aby som mohol prečítať stav môjho tlačidla.
Prípadne môžeme tiež nakonfigurovať piny z karty pinout a konfigurácia, ako je to znázornené nižšie.
Krok 5: V ďalšom kroku môže používateľ nastaviť požadovanú frekvenciu pre mikrokontrolér a piny podľa externého a interného oscilátora. V predvolenom nastavení je vybraný interný 8 MHz kryštálový oscilátor a pomocou PLL sa tento 8 prevedie na 48 MHz. To znamená, že v predvolenom nastavení bude doska STM32 alebo mikrokontrolér a piny pracovať na 48 MHz.
Krok 6: Teraz sa presuňte do projektového manažéra a pomenujte svoj projekt, umiestnenie projektu a vyberte reťazec nástrojov alebo IDE. Tu používame TrueSTUDIO, takže som vybral to isté, ako je uvedené nižšie.
Krok 7: Teraz kliknite na Generovať kódovú značku podľa červeného kruhu na obrázku nižšie.
Krok 8: Teraz uvidíte vyskakovacie okno tak, ako je uvedené, potom kliknite na otvorený projekt. Pred týmto krokom sa však uistite, že máte nainštalované TrueSTUDIO.
Programovanie vývojovej dosky STM32 Nucleo64 pomocou TrueSTUDIO
Váš kód alebo projekt sa teraz automaticky otvorí v aplikácii TrueSTUDIO, ak program TrueSTUDIO požiada o umiestnenie pracovného priestoru, potom poskytne umiestnenie pracovného priestoru alebo použije predvolené umiestnenie.
Používateľ uvidí obrazovku uvedenú nižšie a potom musí kliknúť na rohovú značku červenou farbou.
A teraz vidíme kód v našom TreuSTUDIO IDE. Na ľavej strane pod priečinkom „src“ vidíme ďalšie programové súbory (s príponou.c), ktoré už pre nás boli vygenerované z STM32Cube. Musíme naprogramovať iba súbor main.c. Aj v súbore main.c už bude mať CubeMX pre nás nastavených pár vecí, musíme to len upraviť, aby vyhovovali nášmu programu. Celý kód v súbore main.c je uvedený v dolnej časti tejto stránky.
Program STM32 Nucleo64 na riadenie LED pomocou tlačidla
Pretože všetky potrebné ovládače a kód generuje STM32CubeMX, musíme nakonfigurovať iba LED kolík ako výstup a tlačidlo ako vstup. Program na ovládanie ledu pomocou tlačidla by mal byť napísaný v súbore main.c. Celý program nájdete v dolnej časti tejto stránky. Vysvetlenie je nasledujúce
Máme iba napísaný kód na prepínanie LED pomocou tlačidla. Aby sme to dosiahli, najskôr definujeme piny pre LED a tlačidlá. Tu sme definovali LED na Pin 5 číslo PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
A definujte prepínač na kolíku číslo 13 PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Potom sme v hlavnej funkcii inicializovali všetky použité periférie.
/ * Inicializujte všetky nakonfigurované periférie * / MX_GPIO_Init (); MX_USART2_Init ();
Potom prečítajte tlačidlo pomocou príkazu if a ak je nájdené, stlačte tlačidlo (LOW), potom LED prepne jeho stav.
While (1) {/ * USER CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * UŽÍVATEĽSKÝ KÓD ZAČÍNAME 3 * /}
Tu má funkcia HAL_GPIO_ReadPin (SW_PORT, SW_PIN) dva argumenty, jeden je PORT a druhý je pin, ku ktorému je pripojený prepínač, a tento pin je nakonfigurovaný ako INPUT pri konfigurácii periférie v STM32CubeMX.
Ladenie a nahrávanie kódu na vývojovú dosku STM32 Necleo64 pomocou TrueSTUDIO
Teraz pripojte dosku k počítaču pomocou kábla programátora. Po jeho pripojení by sa mal automaticky stiahnuť ovládač potrebný pre dosku, čo môžete skontrolovať pomocou správcu zariadenia.
Potom stlačte ikonu ladenia označenú červeným kruhom na nižšie uvedenom obrázku, aby ste zostavili program a dostali sa do režimu ladenia.
V režime ladenia sa kód automaticky nahrá. Teraz musíme spustiť kód stlačením 'Pokračovať' alebo F8 (vyznačené červeným obvodom na obrázku nižšie).
Teraz môžeme otestovať ovládanie LED stlačením tlačidla. Podľa kódu by mala LED meniť svoj stav vždy, keď stlačíte tlačidlo. Celú prácu nájdete tiež vo videu, na ktoré odkazujete v dolnej časti tejto stránky.
Po vyskúšaní môžeme program ukončiť aj stlačením ikony ukončenia, ktorá je na obrázku nižšie označená červeným kruhom.