- Výběr a stažení požadovaných vývojových platforem pro desky Nucleo64
- Schéma zapojení a nastavení hardwaru
- Začínáme s STM32CubeMX pro vývojové desky STM32 Nucleo64
- Programování vývojové desky STM32 Nucleo64 pomocí TrueSTUDIO
- Program STM32 Nucleo64 pro ovládání LED pomocí tlačítka
- Ladění a nahrávání kódu na vývojovou desku STM32 Necleo64 pomocí TrueSTUDIO
Mnoho z nás by mělo být obeznámeno s populárními mikrokontroléry a vývojovými deskami, jako jsou Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 atd. Ve skutečnosti by pro většinu lidí bylo Arduino jejich první vývojovou deskou, ale jak se hloubíme a začneme profesionální designy, brzy si uvědomíme omezení Arduina (jako jsou náklady, všestrannost, stabilita, rychlost atd.) a pochopíme potřebu přejít na nativnější platformu mikrokontroléru, jako je PIC, STM, Renesas atd.
Již jsme prošli řadou výukových programů mikrokontroléru PIC, které začátečníky vedou k učení mikrokontrolérů PIC. Podobně počínaje tímto článkem také naplánujeme sekvenci výukových programů vývojové desky STM32 Nucleo64, které mohou pomoci absolutním začátečníkům učit se a vyvíjet se pomocí platformy STM32. Vývojové desky Nucleo64 jsou nízkonákladová a snadno použitelná platforma pro profesionální vývojáře i pro fandy. Pokud jste na vývojových deskách STM32 Nucleo64 úplně noví, podívejte se na toto video Nucleo64 Review, abyste pochopili základy této desky, než budete pokračovat dále. Video také ukazuje, jak programovat STM32 pomocí platformy ARM Mbed ale pro tento tutoriál použijeme další bezplatnou platformu od ST Microelectronics nazvanou TrueSTUDIO.
Poznámka: Existuje mnoho verzí vývojových desek STM32 Nucleo64, konkrétní deska použitá v tomto kurzu je NUCLEO-F030R8. Tuto desku jsme vybrali hlavně kvůli její nízké ceně. I když máte jinou verzi, pro začátek vám bude stačit většina věcí popsaných v tomto kurzu.
Výběr a stažení požadovaných vývojových platforem pro desky Nucleo64
Začínáme s jakýmkoli mikrokontrolérem bude vyžadovat programovací IDE, jako máme Arduino IDE pro desky Arduino, Atmel Studio pro mikrokontrolér AVR, MP Lab pro PIC atd. Takže zde potřebujeme také IDE pro naše desky STM32 Nucleo64, abychom mohli programovat a ladit. Rodina STM32 se skládá z 32bitových mikrokontrolérů, které podporují následující IDE a řetězce nástrojů:
- IAR Embedded Workbench® pro ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- Systémový pracovní stůl pro STM32
Zde pro naše výukové programy bude TrueSTUDIO použito pro psaní, kompilaci a ladění kódu, protože je zdarma ke stažení a použití i pro komerční projekty bez jakéhokoli licenčního požadavku. Poté bude STM32CubeMX použit ke generování periferních ovladačů pro desky STM32, což usnadní programování. Pro nahrání našeho programu (hexadecimální soubor) do naší vývojové desky lidé obvykle používají nástroj STM32 ST-LINK Utility, ale místo toho k tomu použijeme samotný TrueSTUDIO. TrueSTUDIO má režim ladění, který umožňuje programátorům nahrát hexadecimální soubor přímo na desku STM32. Stahování TrueSTUIO i STM32CubeMX je snadné, stačí kliknout na níže uvedený odkaz, zaregistrovat se a stáhnout si nastavení. Poté je nainstalujte do svého notebooku.
- Stáhněte si STM32Cube MX
- Stáhněte si TrueSTUDIO
Schéma zapojení a nastavení hardwaru
Než budeme pokračovat v softwarové sekci a programování, připravme naši desku na tento projekt. Jak již bylo zmíněno dříve v tomto článku, budeme ovládat LED pomocí tlačítka. Nyní, pokud jste viděli výše odkazované video, měli byste již vědět, že vaše vývojová deska STM32 má dvě sady konektorových kolíků na obou stranách, které se nazývají kolíky ST Morpho. K těmto pinům jsme připojili tlačítko a LED, jak je znázorněno na schématu zapojení níže.
Zapojení obvodů je pro tento projekt snadné, musíme připojit LED na PA5 PORTA a spínač na PC13 PORTC s ohledem na GND. Jakmile byla spojení provedena, moje testovací nastavení vypadalo takto.
Alternativně můžeme také použít vestavěnou LED a tlačítko na desce. Tyto vestavěné LED diody a tlačítko se také připojují na stejný pin, jak je znázorněno na schématu zapojení. Přidali jsme externí komponenty pouze pro praxi. Níže uvedené schéma pinů vývojové desky STM32 bude užitečné vědět, kde jsou jednotlivé piny morpho připojeny k palubě.
Začínáme s STM32CubeMX pro vývojové desky STM32 Nucleo64
Krok 1: Po instalaci spusťte STM32CubeMX, poté vyberte selektor přístupové desky a vyberte desku STM32.
Krok 2: Nyní vyhledejte desku podle názvu desky STM32, jako je NUCLEO-F030R8, a klikněte na desku zobrazenou na obrázku. Pokud máte jinou tabuli, vyhledejte její příslušný název. Tento software bude podporovat všechny vývojové desky STM32 od společnosti ST Microelectronics.
Krok 3: Nyní klikněte na ano, jak je znázorněno na obrázku níže, aby se inicializovaly všechny periferie ve výchozím režimu. Později můžeme požadované změnit podle potřeby našeho projektu.
Po kliknutí na „Ano“ se obrazovka bude podobat obrázku níže a zeleným pinem indikujícím, že jsou ve výchozím nastavení spuštěny.
Krok 4: Nyní si uživatelé mohou vybrat požadované nastavení z kategorií. Tady v tomto výukovém programu přepneme LED pomocí tlačítka. Musíme tedy vytvořit LED kolík jako výstup a spínací kolík jako VSTUP.
Můžete si vybrat libovolný pin, ale vybírám PA5 a změním jeho stav na GPIO_Output, aby fungoval jako výstupní pin, jak je znázorněno na následujícím obrázku.
Podobně vybírám PC13 jako GPIO_Input, abych mohl číst stav svého tlačítka.
Alternativně můžeme také nakonfigurovat piny z karty pinout a konfigurace, jak je znázorněno níže.
Krok 5: V dalším kroku může uživatel nastavit požadovanou frekvenci pro mikrokontrolér a piny podle externího a interního oscilátoru. Ve výchozím nastavení je vybrán interní 8 MHz krystalový oscilátor a pomocí PLL je tento 8 převeden na 48MHz. To znamená, že ve výchozím nastavení bude deska STM32 nebo mikrokontrolér a piny pracovat na 48MHz.
Krok 6: Nyní přesuňte manažera projektu a pojmenujte svůj projekt, umístění projektu a vyberte řetězec nástrojů nebo IDE. Zde používáme TrueSTUDIO, takže jsem vybral to samé, jak je uvedeno níže.
Krok 7: Nyní klikněte na Generovat kódovou značku pomocí červeného kruhu na obrázku níže.
Krok 8: Nyní uvidíte vyskakovací okno, jak je uvedeno, poté klikněte na otevřený projekt. Před tímto krokem se ale ujistěte, že jste nainstalovali TrueSTUDIO.
Programování vývojové desky STM32 Nucleo64 pomocí TrueSTUDIO
Nyní se váš kód nebo projekt automaticky otevře v TrueSTUDIO, pokud vás TrueSTUDIO požádá o umístění pracovního prostoru, pak zadejte umístění pracovního prostoru nebo přejděte do výchozího umístění.
Uživatel uvidí níže uvedenou obrazovku a poté bude muset kliknout na rohovou značku červenou barvou.
A teď můžeme vidět kód v našem TreuSTUDIO IDE. Na levé straně pod složkou „src“ vidíme další programové soubory (s příponou.c), které pro nás již byly vygenerovány z STM32Cube. Musíme naprogramovat soubor main.c. Dokonce i v souboru main.c už budeme mít několik věcí, které pro nás CubeMX nastaví, musíme to pouze upravit, aby vyhovovaly našemu programu. Celý kód uvnitř souboru main.c je uveden ve spodní části této stránky.
Program STM32 Nucleo64 pro ovládání LED pomocí tlačítka
Protože všechny potřebné ovladače a kód generuje STM32CubeMX, musíme konfigurovat pouze LED pin jako výstup a tlačítko jako vstup. Program pro ovládání LED pomocí tlačítka by měl být zapsán do souboru main.c. Kompletní program naleznete ve spodní části této stránky. Vysvětlení je následující
Máme pouze napsaný kód pro přepínání LED pomocí tlačítka. Abychom toho dosáhli, nejprve definujeme piny pro LED a tlačítka. Zde jsme definovali LED na Pin 5 číslo PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
A definujte přepínač na Pin číslo 13 PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Poté jsme v hlavní funkci inicializovali všechny použité periferie.
/ * Inicializovat všechny nakonfigurované periferie * / MX_GPIO_Init (); MX_USART2_Init ();
Poté přečtěte tlačítko pomocí příkazu if a pokud je nalezeno tlačítko, stiskněte (LOW), pak LED přepne 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ŽIVATELSKÝ KÓD ZAČÍNÁ 3 * /}
Zde má funkce HAL_GPIO_ReadPin (SW_PORT, SW_PIN) dva argumenty, jeden je PORT a druhý je pin, ke kterému je připojen přepínač, a tento pin je konfigurován jako INPUT při konfiguraci periferních zařízení v STM32CubeMX.
Ladění a nahrávání kódu na vývojovou desku STM32 Necleo64 pomocí TrueSTUDIO
Nyní připojte desku k počítači pomocí kabelu programátoru. Jakmile jej připojíte, měl by se automaticky stáhnout ovladač požadovaný pro desku, což můžete zkontrolovat pomocí správce zařízení.
Poté stiskněte ikonu ladění označenou červeným kroužkem na níže uvedeném obrázku, abyste program zkompilovali a vstoupili do režimu ladění.
V režimu ladění se kód automaticky nahraje. Nyní musíme spustit kód stisknutím 'Pokračovat' nebo F8 (označeno červeným obvodem na obrázku níže).
Nyní můžeme otestovat ovládání LED stisknutím tlačítka. Podle kódu by LED měla změnit svůj stav pokaždé, když stisknete tlačítko. Kompletní práci najdete také ve videu, na které odkazujete ve spodní části této stránky.
Po testování můžeme program také ukončit stisknutím ikony ukončení, která je na obrázku níže označena červeným kroužkem.