- A szükséges fejlesztői platformok kiválasztása és letöltése a Nucleo64 táblákhoz
- Áramkör és hardver beállítása
- Az első lépések az STM32CubeMX for STM32 Nucleo64 fejlesztőtáblákkal
- Az STM32 Nucleo64 Development Board programozása a TrueSTUDIO használatával
- STM32 Nucleo64 program a LED vezérléséhez nyomógombbal
- Hibakeresés és kód feltöltése az STM32 Necleo64 Fejlesztő Testületébe a TrueSTUDIO használatával
Sokunknak ismernie kell az olyan népszerű mikrovezérlőket és fejlesztőpaneleket, mint az Arduino, a Raspberry Pi, az ESP8266, a NoduMCU, a 8051 stb. Valójában a legtöbb ember számára az Arduino lett volna az első fejlesztői tábla, de amikor mélyen ásunk és elkezdjük A professzionális tervezés során hamarosan rájövünk az Arduino korlátaira (például a költségekre, a sokoldalúságra, a stabilitásra, a sebességre stb.), és megértjük, hogy át kell váltani egy natívabb mikrokontroller platformra, mint például a PIC, STM, Renesas stb.
A PIC mikrovezérlők oktatóinak sorozatát már lefedtük, amely a kezdőket a PIC mikrovezérlők megtanulására irányítja. Hasonlóképpen, ezzel a cikkel kezdve megtervezzük az STM32 Nucleo64 fejlesztőtábla oktatóprogramjainak sorozatát is, amelyek segíthetnek az abszolút kezdőknek az STM32 Platform használatával történő tanulásban és fejlődésben. A Nucleo64 fejlesztőtáblák olcsóak és könnyen használható platformok professzionális fejlesztőknek és hobbistáknak egyaránt. Ha Ön teljesen új az STM32 Nucleo64 fejlesztőtáblákban, akkor a további folytatás előtt nézze meg ezt a Nucleo64 áttekintő videót, hogy megértse a tábla alapjait. A videó azt is bemutatja, hogyan kell az STM32- et programozni az ARM Mbed Platform segítségével de ehhez az oktatóanyaghoz egy másik, az ST Microelectronics által használt TrueSTUDIO nevű platformot fogunk használni.
Megjegyzés: Az STM32 Nucleo64 fejlesztőtábláknak sok változata létezik, az oktatóanyagban használt adott tábla a NUCLEO-F030R8. Ezt a táblát elsősorban az alacsony költsége miatt választottuk. Még ha más verziója is van, az oktatóanyagban tárgyalt legtöbb dolog elegendő lesz az induláshoz.
A szükséges fejlesztői platformok kiválasztása és letöltése a Nucleo64 táblákhoz
Bármely mikrovezérlő használatának megkezdéséhez szükség lesz egy programozó IDE-re, mint például az Arduino IDE az Arduino táblákra, az Atmel Studio az AVR mikrovezérlőre, az MP Lab a PIC-hez stb. Az STM32 család 32 bites mikrovezérlőkből áll, amelyek a következő IDE-ket és eszközláncokat támogatják:
- IAR Embedded Workbench® for ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- System Workbench az STM32-hez
Itt az oktatóanyagokhoz a TrueSTUDIO-t fogjuk használni a kód írására, fordítására és hibakeresésére, mert ingyenesen letölthető és felhasználható még kereskedelmi projektekhez is, licencigény nélkül. Ezután az STM32CubeMX segítségével perifériás illesztőprogramokat állítanak elő az STM32 táblák számára a programozás megkönnyítése érdekében. A programunk (hex fájl) feltöltésére a fejlesztőtáblánkra az emberek általában az STM32 ST-LINK segédprogramot használják, ehelyett azonban magához a TrueSTUDIO-hoz fogunk használni. A TrueSTUDIO hibakeresési móddal rendelkezik, amely lehetővé teszi a programozók számára, hogy a hex fájlt közvetlenül az STM32 táblára töltsék fel. A TrueSTUIO és az STM32CubeMX egyaránt könnyen letölthető, csak kövesse az alábbi linket, regisztráljon és töltse le a telepítést. Ezután telepítse őket a laptopra.
- Letöltés STM32Cube MX
- Töltse le a TrueSTUDIO alkalmazást
Áramkör és hardver beállítása
Mielőtt folytatnánk a szoftver részt és a kódolást, készítsük el a táblánkat ehhez a projekthez. Amint a cikkben korábban említettük, a LED-et egy nyomógomb segítségével fogjuk irányítani. Most, ha látta a fent linkelt videót, akkor már tudnia kell, hogy az STM32 Fejlesztői Testületének két oldalán két csatlakozócsap van, az úgynevezett ST Morpho csapok. Ezekhez a csapokhoz nyomógombot és egy LED-et csatlakoztattunk, az alábbi kapcsolási rajz szerint.
Az áramköri kapcsolatok egyszerűek ehhez a projekthez, csatlakoztatnunk kell egy LED-et a PORTA PA5-ére és egy kapcsolót a PORTC PC13-ra a GND vonatkozásában. A csatlakozások létrejötte után a tesztbeállításom így nézett ki.
Alternatív megoldásként használhatjuk a táblán található beépített LED-et és nyomógombot is. Ezek a beépített LED-ek és a nyomógomb szintén ugyanazon a csapon csatlakoznak, mint azt a kapcsolási rajz mutatja. Külső komponenseket csak gyakorlat céljából adtunk hozzá. Az STM32 Fejlesztési Testület alábbi pólusdiagramja hasznos lesz annak megismeréséhez, hogy az egyes morfócsapok hol vannak a fedélzeten.
Az első lépések az STM32CubeMX for STM32 Nucleo64 fejlesztőtáblákkal
1. lépés: A telepítés után indítsa el az STM32CubeMX alkalmazást, majd válassza ki a hozzáférési kártya választót az STM32 kártya kiválasztásához.
2. lépés: Most keressen a táblán az STM32 tábla neve alapján, például NUCLEO-F030R8, és kattintson a képen látható táblára. Ha más táblája van, keresse meg a megfelelő nevet. A szoftver támogatja az ST Microelectronics összes STM32 fejlesztõlemezét.
3. lépés: Most kattintson az Igen gombra az alábbi képen látható módon, hogy inicializálja az összes perifériát az alapértelmezett módban. Később módosíthatjuk a szükségeseket, ha a projektünkre szükség van.
Az „Igen” gombra kattintás után a képernyő hasonló lesz az alábbi képhez és a zöld színű tűhöz, jelezve, hogy alapértelmezés szerint ezeket kezdeményezik.
4. lépés: Most a felhasználók kiválaszthatják a kívánt beállítást a kategóriákból. Ebben az oktatóanyagban egy LED-et kapcsolunk egy nyomógomb segítségével. Tehát meg kell csinálnunk a LED-csapot kimenetként, és a kapcsolótűt INPUT-ként.
Bármelyik tűt kiválaszthatja, de én a PA5-et választom, és állapotát GPIO_Output- ra változtatom, hogy kimeneti tűként működjön, ahogy az alábbi képen látható.
Hasonlóképpen, a PC13-at választom GPIO_Input-nak, hogy elolvashassam a nyomógombom állapotát.
Alternatív megoldásként konfigurálhatjuk a csapokat a pinout és konfigurációs fülről is, az alábbiak szerint.
5. lépés: A következő lépésben a felhasználó beállíthatja a mikrovezérlő és a csapok kívánt frekvenciáját a külső és belső oszcillátor szerint. Alapértelmezés szerint egy belső 8 MHz-es kristályoszcillátor van kiválasztva, és a PLL használatával ez a 8 átalakításra kerül 48 MHz-re. Alapértelmezés szerint az STM32 kártya vagy mikrovezérlő és a Pins 48MHz-en fog működni.
6. lépés: Most lépjen be a projektmenedzserbe, és adjon nevet a projektnek, a projekt helyének, és válassza ki az eszközláncot vagy az IDE-t. Itt a TrueSTUDIO-t használjuk, ezért ugyanazt választottam, mint az alábbiakban látható.
7. lépés: Most kattintson a Kódjel előállítása gombra az alábbi képen látható piros körrel.
8. lépés: Most egy előugró ablakot fog látni, majd kattintson a nyitott projektre. De a lépés előtt ellenőrizze, hogy telepítette-e a TrueSTUDIO programot.
Az STM32 Nucleo64 Development Board programozása a TrueSTUDIO használatával
A kód vagy a projekt automatikusan megnyílik a TrueSTUDIO alkalmazásban, ha a TrueSTUDIO munkaterület helyét kéri, majd adja meg a munkaterület helyét, vagy adja meg az alapértelmezett helyet.
A felhasználó meg fogja látni az alább megadott képernyőt, majd kattintson a piros színű sarokjelre.
És most láthatjuk a kódot a TreuSTUDIO IDE-nkben. A bal oldalon az 'src' mappa alatt láthatunk más programfájlokat (.c kiterjesztéssel), amelyeket már készítettünk nekünk az STM32Cube-ból. Csak be kell programoznunk a main.c fájlt. Még a main.c fájlban is kevés dolgot állítunk be a CubeMX számára, csak a programunknak megfelelően kell szerkesztenünk. A main.c fájlban található teljes kódot az oldal alján találja meg.
STM32 Nucleo64 program a LED vezérléséhez nyomógombbal
Mivel az összes szükséges illesztőprogramot és kódot az STM32CubeMX generálja, csak egy LED tűt kell konfigurálnunk kimenetként és egy nyomógombot bemenetként. A led vezérlésére szolgáló programot a nyomógomb segítségével be kell írni a main.c fájlba. A teljes program az oldal alján található. Ennek magyarázata a következő
Csak a LED nyomógombos váltására írtunk kódot. Ennek elérése érdekében először meghatározzuk a LED-ek és a nyomógombok csapjait. Itt definiáltunk egy LED-et a PORTA 5-ös érintkezőjénél
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
És definiálja a kapcsolót a PORTC 13. sz.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Ezután a fő funkcióban inicializáltuk az összes használt perifériát.
/ * Az összes konfigurált periféria inicializálása * / MX_GPIO_Init (); MX_USART2_Init ();
Ezután olvassa el a nyomógombot az if utasítással, és ha megtalálta a gombot, nyomja meg az (LOW) gombot, akkor a LED váltani fogja az állapotát.
Míg (1) {/ * FELHASZNÁLÓKÓD VÉGIG VÉGE * / Ha (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * FELHASZNÁLÓI KÓD 3 KEZDÉS
Itt a HAL_GPIO_ReadPin (SW_PORT, SW_PIN) függvénynek két argumentuma van, az egyik a PORT, a másik pedig egy pin, amelyhez kapcsoló van csatlakoztatva, és ez a pin INPUT-ként van konfigurálva, miközben a perifériát konfigurálja az STM32CubeMX-ben.
Hibakeresés és kód feltöltése az STM32 Necleo64 Fejlesztő Testületébe a TrueSTUDIO használatával
Most csatlakoztassa a táblát a számítógéphez a programozó kábel segítségével. Miután csatlakoztatta, automatikusan le kell tölteni a táblához szükséges illesztőprogramot, ezt az eszközkezelővel ellenőrizheti.
Ezután nyomja meg az alábbi képen a piros körrel jelölt hibakeresési ikont a program összeállításához és a hibakeresési módba történő belépéshez.
Hibakeresési módban a kód automatikusan feltöltésre kerül. Most futtatnunk kell a kódot a „Folytatás” vagy az F8 (az alábbi kép piros áramkörében jelölve) megnyomásával.
Most tesztelhetjük a LED vezérlését a nyomógomb megnyomásával. A kód szerint a LED-nek minden alkalommal megváltoztatnia kell állapotát, amikor megnyomja a nyomógombot. A teljes munka megtalálható az oldal alján linkelt videóban is.
Tesztelés után a programot is leállíthatjuk a befejezés ikon megnyomásával, amelyet az alábbi képen piros kör jelöl.