- ST-LINK V2
- STM32CubeMX
- Szükséges anyagok
- Áramkör és kapcsolatok
- Program létrehozása és beírása az STM32-be a Keil uVision és az ST-Link segítségével
- A Keil programozott STM32 kártya kimenete
- Program
Az ARM Cortex M architektúrát használó STM32 mikrovezérlők mára népszerűvé válnak, és jellemzői, költségei és teljesítménye miatt számos alkalmazásban használják. Az STM32F103C8-at az előző oktatóanyagok Arduino IDE használatával programoztuk. Az STM32 programozása az Arduino IDE segítségével egyszerű, mivel rengeteg könyvtár áll rendelkezésre különféle érzékelőkhöz bármilyen feladat végrehajtásához, csak fel kell vennünk ezeket a könyvtárakat a programba. Ez egy egyszerű eljárás, és előfordulhat, hogy nem kezd bele az ARM processzorok mélyebb megismerésébe. Tehát most belépünk a következő programozási szintre, az úgynevezett ARM programozásra. Ezzel nemcsak javíthatjuk a kód struktúráját, hanem memóriaterületet is megtakaríthatunk azáltal, hogy nem használunk felesleges könyvtárakat.
Az STMicroelectronics bemutatta az STM32Cube MX nevű eszközt, amely a perifériák és a kiválasztott STM32 kártya alapján generálja az alapkódot. Tehát nem kell aggódnunk az alapvető illesztőprogramok és perifériák kódolása miatt. Ez a generált kód felhasználható a Keil uVision alkalmazásban az igényeknek megfelelő szerkesztéshez. Végül a kódot az STMicroelectronics ST-Link programozójával az STM32-be írják.
Ebben az oktatóanyagban megtanuljuk, hogyan kell programozni az STM32F103C8-ot a Keil uVision és az STM32CubeMX használatával egy egyszerű projekt segítségével, amely összekapcsolja a nyomógombot és a LED-et az STM32F103C8 Blue Pill táblával. Az STM32Cube MX segítségével generáljuk a kódot, majd a Keil uVision használatával szerkesztjük és feltöltöttük a kódot az STM32F103C8-ba. A részletek elõtt megismerjük az ST-LINK programozót és az STM32CubeMX szoftvereszközt.
ST-LINK V2
Az ST-LINK / V2 egy áramkörön belüli hibakereső és programozó az STM8 és STM32 mikrovezérlő családokhoz. Ezzel az ST-LINK segítségével feltölthetünk kódot az STM32F103C8 készülékre és más STM8 és STM32 mikrovezérlőkre. Az egyvezetékes interfész modul (SWIM) és a JTAG / soros vezeték hibakeresési (SWD) interfészei kommunikációra szolgálnak bármely alkalmazás-táblán található STM8 vagy STM32 mikrovezérlővel. Mivel az STM32 alkalmazások az USB teljes sebességű interfészét használják az Atollic, az IAR, a Keil vagy a TASKING integrált fejlesztői környezetekkel való kommunikációhoz, ezért ezt a hardvert felhasználhatjuk az STM 8 és STM32 mikrovezérlők programozására.
A fenti képen látható az STMicroelectronics ST-LINK V2 kulcsának képe, amely támogatja az STM32 SWD hibakereső felület teljes skáláját, egy egyszerű, 4 vezetékes interfészt (beleértve az áramellátást is), gyors és stabil. Különféle színekben kapható. A test alumíniumötvözetből készül. Kék LED jelzéssel rendelkezik, mivel az ST-LINK üzemállapotának megfigyelésére szolgál. A csapok neve egyértelműen fel van tüntetve a héjon, amint azt a fenti képen láthatjuk. Meg lehet illeszteni a Keil szoftver, ahol a programot is villant a STM32 mikrokontroller. Tehát nézzük meg ebben az oktatóanyagban, hogyan használható ez az ST-LINK programozó az STM32 mikrovezérlő programozására. Az alábbi képen láthatók az ST-LINK V2 modul csapjai.
Megjegyzés: Az ST-Link első csatlakoztatásakor a számítógéppel. Telepítenünk kell az eszközillesztőt. Az eszközillesztők ezen a linken találhatók az operációs rendszernek megfelelően.
STM32CubeMX
Az STM32CubeMX eszköz az STMicroelectronics STMCube része. Ez a szoftvereszköz megkönnyíti a fejlesztést azáltal, hogy csökkenti a fejlesztési erőfeszítéseket, időt és költségeket. Az STM32Cube tartalmazza az STM32CubeMX szoftvert, amely egy grafikus szoftverkonfigurációs eszköz, amely lehetővé teszi a C inicializálási kód előállítását grafikus varázslók segítségével. Ez a kód különféle fejlesztői környezetekben használható, például a keil uVision, a GCC, az IAR stb. Ezt az eszközt a következő linkről töltheti le.
Az STM32CubeMX a következő tulajdonságokkal rendelkezik
- Tűz ki konfliktusmegoldó
- Órafa beállító segéd
- Energiafogyasztás kalkulátor
- MCU perifériás konfigurációt végző segédprogram, például GPIO csapok, USART stb
- MCU perifériás konfigurációt végző segédprogram köztes szoftvercsomagok, például USB, TCP / IP stb
Szükséges anyagok
Hardver
- STM32F103C8 kék tabletta
- ST-LINK V2
- Nyomógomb
- VEZETTE
- Kenyérlemez
- Jumper huzalok
Szoftver
- STM32CubeMX kódgeneráló eszköz (link)
- Keil uVision 5 (link)
- Az ST-Link V2 illesztőprogramjai (link)
Áramkör és kapcsolatok
Az alábbiakban bemutatjuk a kapcsolási rajzot, hogy a LED- et egyszerűen csatlakoztathassuk az STM32 táblához egy nyomógomb segítségével.
Csatlakozás az ST-LINK V2 és az STM32F103C8 között
Itt az STM32 Blue Pill kártyát az ST-LINK táplálja, amely a számítógép USB portjához csatlakozik. Tehát nem kell külön táplálnunk az STM32-et. Az alábbi táblázat bemutatja az ST-Link és a kék tabletta kapcsolatát.
STM32F103C8 |
ST-Link V2 |
GND |
GND |
SWCLK |
SWCLK |
SWDIO |
SWDIO |
3V3 |
3.3V |
LED és nyomógomb
A LED arra szolgál, hogy jelezze a kék tabletta kimenetét, amikor egy nyomógombot megnyomnak. A LED anódja csatlakozik a Blue Pill kártya PC13 csatlakozójához, és a katód földelve van.
Egy nyomógomb van csatlakoztatva, hogy bemenetet nyújtson a Blue Pill kártya PA1 tűjéhez. 10k értékű felhúzási ellenállást is használnunk kell, mert a gomb a gomb elengedésekor bemenet nélkül lebeghet. A nyomógomb egyik vége a földhöz, a másik vége pedig a PA1 csaphoz van csatlakoztatva, és egy 10 k-os felhúzási ellenállás is csatlakozik a 3,3 V-os Blue Pill kártyához.
Program létrehozása és beírása az STM32-be a Keil uVision és az ST-Link segítségével
1. lépés: - Először telepítse az összes eszközillesztőt az ST-LINK V2-hez, az STM32Cube MX és Keil uVision szoftvereszközöket, és telepítse a szükséges csomagokat az STM32F103C8-hoz.
2. lépés: - A második lépés az Open >> STM32Cube MX
3. lépés: - Ezután kattintson az Új projekt elemre
4. lépés: - Ezt követően keresse meg és válassza ki az STM32F103C8 mikrovezérlőt
5. lépés: - Most megjelenik az STM32F103C8 kitűző vázlata, itt beállíthatjuk a tűkonfigurációkat. Projektjeink szerint kiválaszthatjuk a csapjainkat a perifériák részben is.
6. lépés: - Közvetlenül a tűre is kattinthat, és megjelenik egy lista, most válassza ki a szükséges tűkonfigurációt.
7. lépés: - Projektünkhöz a PA1-et választottuk GPIO INPUT - ként, a PC13-at GPIO OUTPUT-ként és a SYS hibakeresést SERIAL WIRE-ként, itt csak az ST-LINK SWCLK & SWDIO csapokat csatlakoztatjuk. A kiválasztott és konfigurált csapok ZÖLD színben jelennek meg. Megjegyezheti, hogy az alábbi képen.
8. lépés: - Ezután a Konfiguráció lapon válassza a GPIO lehetőséget a GPIO pin konfigurációk beállításához az általunk kiválasztott csapokhoz.
9. lépés: - Ebben a pin-konfigurációs mezőben ezután beállíthatjuk a felhasználói címkét az általunk használt csapokhoz, vagyis a felhasználó által definiált PIN-nevekhez.
10. lépés: - Ezt követően kattintson a Projekt >> Kód létrehozása elemre.
11. lépés: - Most megjelenik a projektbeállítások párbeszédpanel. Ebben a mezőben válassza ki a projekt nevét és helyét, majd válassza ki a fejlesztői környezetet. A Keilt használjuk, ezért IDE-ként válassza az MDK-ARMv5 lehetőséget.
12. lépés: - Ezután a Kódgenerátor fül alatt válassza a Csak a szükséges könyvtárfájlok másolása lehetőséget , majd kattintson az OK gombra.
13. lépés: - Most megjelenik a kódgenerálás párbeszédpanel. Válassza a Projekt megnyitása lehetőséget a projekt generált kódjának automatikus megnyitásához a Keil uvsion programban.
14. lépés: - Most megnyílik a Keil uVision eszköz az STM32CubeMx-ben létrehozott kódunkkal, ugyanazzal a projektnévvel, a szükséges könyvtárral és kódokkal, amelyek a kiválasztott csapokhoz vannak konfigurálva.
15. lépés: - Most csak bele kell foglalnunk a logikát, hogy valamilyen műveletet hajtsunk végre a kimeneti LED-nél (PC13 érintkező), amikor a gombot megnyomjuk és elengedjük a GPIO bemenetnél (PA1 érintkező). Tehát válassza ki a main.c programunkat, hogy tartalmazzon néhány kódot.
16. lépés: - Most adja hozzá a kódot a while (1) ciklusba, lásd az alábbi képet, ahol a kód folyamatos futtatásához kiemeltem azt a részt.
while (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => DETECTS gombot megnyomjuk {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // A kimenet magas szintje, amikor a gombot megnyomjadd} else {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // A kimenet alacsony szintre állítása a gomb lenyomásakor}}
17. lépés: - A kód szerkesztésének befejezése után kattintson a Hibakeresés fülön található Célbeállítások ikonra, majd válassza az ST-LINK Debugger lehetőséget.
Kattintson a Beállítások gombra, majd a Flash Letöltés fül alatt jelölje be a Visszaállítás és futtatás jelölőnégyzetet, majd kattintson az 'OK' gombra.
18. lépés: - Most kattintson az Újjáépítés ikonra az összes célfájl újjáépítéséhez.
19. lépés: - Most csatlakoztathatja az ST-LINK-et a számítógéphez, készen állva az áramköri kapcsolatokkal, és kattintson a LETÖLTÉS ikonra, vagy nyomja meg az F8 billentyűt az STM32F103C8 villogásához az Ön által létrehozott és szerkesztett kóddal.
20. lépés: - Észreveheti a villogó jelzést a keil uVision ablak alján.
A Keil programozott STM32 kártya kimenete
Most, amikor megnyomjuk a nyomógombot, a LED bekapcsol, és amikor elengedjük, a LED kikapcsol.
Program
Az alábbiakban látható a fő rész, amelyet hozzáadtunk a létrehozott programhoz. Ezt az alábbi kódot be kell illeszteni az STM32CubeMX által generált main.c program (1 ) részébe. Visszaléphet a 15. lépéstől a 17. lépésig, hogy megtudja, hogyan kell hozzáadni a main.c programhoz.
while (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => DETECTS gombot megnyomjuk {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // A kimenet magas szintje, amikor a gombot megnyomjadd} else {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // A kimenet alacsony szintre állítása a gomb lenyomásakor}}
A projekt létrehozásának és feltöltésének teljes folyamatát az STM32 táblára szintén a végén megadott videó ismerteti. Az alábbiakban a main.c fájl teljes kódját is megadjuk, beleértve a fenti kódot is.
Az STM32 projektek teljes sorozatát itt találja.