- Odabir i preuzimanje potrebnih razvojnih platformi za Nucleo64 ploče
- Kružni dijagram i postavljanje hardvera
- Početak rada sa STM32CubeMX za razvojne ploče STM32 Nucleo64
- Programiranje razvojnog odbora STM32 Nucleo64 pomoću TrueSTUDIO
- STM32 Nucleo64 program za upravljanje LED pomoću gumba
- Otklanjanje pogrešaka i prijenos koda na razvojnu ploču STM32 Necleo64 pomoću TrueSTUDIO
Mnogi od nas trebali bi biti upoznati s popularnim mikrokontrolerima i razvojnim pločama kao što su Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 itd. Zapravo, za većinu ljudi Arduino bi bio njihova prva razvojna ploča, ali dok kopamo duboko i započinjemo profesionalnih dizajna, uskoro ćemo shvatiti ograničenja Arduina (poput troškova, svestranosti, stabilnosti, brzine itd.) i shvatiti potrebu za prelaskom na matičnu platformu mikrokontrolera poput PIC-a, STM-a, Renesasa itd.
Već smo obradili niz vodiča za PIC mikrokontroler koji vode početnike za učenje PIC mikrokontrolera. Slično tome, počevši od ovog članka, planirat ćemo i slijed tutorijala za razvojni odbor STM32 Nucleo64 koji apsolutnim početnicima mogu pomoći da uče i razvijaju se pomoću platforme STM32. Razvojne ploče Nucleo64 jeftina su i jednostavna platforma za profesionalne programere kao i za hobiste. Ako ste potpuno novi na STM32 Nucleo64 razvojnim pločama, pogledajte ovaj videozapis Nucleo64 Review kako biste razumjeli osnove ove ploče prije nego što nastavite dalje. Video također pokazuje kako programirati STM32 pomoću ARM Mbed platforme ali za ovaj ćemo vodič upotrijebiti još jednu besplatnu platformu tvrtke ST Microelectronics nazvanu TrueSTUDIO.
Napomena: Postoji mnogo verzija razvojnih ploča STM32 Nucleo64, određena ploča korištena u ovom vodiču je NUCLEO-F030R8. Ovu smo ploču odabrali uglavnom zbog niske cijene. Čak i ako imate drugačiju verziju, većina stvari o kojima se raspravlja u vodiču bit će vam dovoljna za početak.
Odabir i preuzimanje potrebnih razvojnih platformi za Nucleo64 ploče
Za početak rada s bilo kojim mikrokontrolerom trebat će IDE za programiranje kao što imamo Arduino IDE za Arduino ploče, Atmel Studio za AVR mikrokontroler, MP Lab za PIC itd. Dakle, ovdje nam je potreban i IDE za naše STM32 Nucleo64 ploče za obavljanje programiranja i uklanjanja pogrešaka. Obitelj STM32 sastoji se od 32-bitnih mikrokontrolera koji podržavaju sljedeće IDE-ove i lance alata:
- IAR ugrađeni radni stol® za ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- Sustav Workbench za STM32
Ovdje će se za naše vodiče TrueSTUDIO koristiti za pisanje, sastavljanje i uklanjanje pogrešaka, jer ga je besplatno preuzeti i koristiti čak i za komercijalne projekte bez ikakvih zahtjeva za licencom. Tada će se STM32CubeMX koristiti za generiranje perifernih pokretačkih programa za ploče STM32 radi olakšavanja programiranja. Za učitavanje našeg programa (hex datoteke) na našu razvojnu ploču, ljudi obično koriste alat STM32 ST-LINK Utility, ali umjesto toga za to ćemo koristiti sam TrueSTUDIO. TrueSTUDIO ima način otklanjanja pogrešaka koji programerima omogućuje prijenos hex datoteke izravno na STM32 ploču. TrueSTUIO i STM32CubeMX je jednostavno preuzeti, samo slijedite donju vezu, prijavite se i preuzmite postavke. Zatim ih instalirajte na svoj laptop.
- Preuzmite STM32Cube MX
- Preuzmite TrueSTUDIO
Kružni dijagram i postavljanje hardvera
Prije nego što nastavimo sa softverskim odjeljkom i kodiranjem, pripremimo našu ploču za ovaj projekt. Kao što je spomenuto ranije u ovom članku, upravljati ćemo LED pomoću gumba. E sad, ako ste vidjeli gore povezan videozapis, već biste trebali znati da vaša razvojna ploča STM32 ima dva seta konektora s obje strane koji se nazivaju ST Morpho pinovi. Na ove smo iglice spojili tipku i LED kao što je prikazano na donjem shematskom spoju.

Kružne veze su lako za ovaj projekt, moramo spojiti LED na PA5 od PORTA i prekidač na PC13 od PORTC s obzirom na GND. Nakon uspostavljanja veza, moja probna postavka izgledala je ovako.

Također, možemo koristiti ugrađenu LED diodu i tipku na ploči. Te ugrađene LED i tipka također su spojene na isti pin kao što je prikazano na shemi spojeva. Vanjske smo komponente dodali samo za vježbu. Donji dijagram pin-a STM32 razvojne ploče dobro će doći kako biste saznali gdje su svaki morpho pinovi spojeni na brodu.

Početak rada sa STM32CubeMX za razvojne ploče STM32 Nucleo64
Korak 1: Nakon instalacije pokrenite STM32CubeMX, a zatim odaberite birač pristupne ploče da biste odabrali STM32 ploču.

Korak 2: Sada potražite ploču prema nazivu ploče STM32 kao što je NUCLEO-F030R8 i kliknite ploču prikazanu na slici. Ako imate drugu ploču, potražite njezino ime. Softver će podržavati sve razvojne ploče STM32 tvrtke ST Microelectronics.

Korak 3: Sada kliknite da, kao što je prikazano na donjoj slici, kako biste inicijalizirali sve periferne uređaje u njihovom zadanom načinu rada. Kasnije možemo promijeniti potrebne prema potrebi našeg projekta.

Nakon klika na "Da", zaslon će biti sličan donjoj slici i zelenoj pribadači, što znači da su oni pokrenuti prema zadanim postavkama.

Korak 4: Sada korisnici mogu odabrati željenu postavku iz kategorija. Ovdje u ovom vodiču prebacivat ćemo LED pomoću gumba. Dakle, trebamo napraviti LED pin kao izlazni, a pin za preklop kao INPUT.
Možete odabrati bilo koji pin, ali ja biram PA5 i mijenjam njegovo stanje u GPIO_Output kako bi radio kao izlazni pin kao što je prikazano na donjoj slici.

Slično tome, odabirem PC13 kao GPIO_Input kako bih mogao pročitati status svoje tipke.

Alternativno, možemo izraditi i konfiguriranje pinova s kartice pinout i konfiguracije, kao što je prikazano u nastavku.

Korak 5: U sljedećem koraku korisnik može postaviti željenu frekvenciju mikrokontrolera i pinova u skladu s vanjskim i unutarnjim oscilatorom. Prema zadanim postavkama odabran je unutarnji oscilator kristala od 8 MHz i pomoću PLL-a ovaj se 8 pretvara u 48 MHz. Znači prema zadanim postavkama STM32 ploča ili mikrokontroler i Pinovi će raditi na 48MHz.

6. korak: Premjestite se u voditelja projekta i dajte naziv projektu, mjestu projekta i odaberite lanac alata ili IDE. Ovdje koristimo TrueSTUDIO, pa sam odabrao isto kao što je prikazano u nastavku.

Korak 7: Sada kliknite na Generiraj oznaku koda crvenim krugom na donjoj slici.

Korak 8: Sada ćete vidjeti skočni prozor kao što je dato, a zatim kliknite na otvoreni projekt. Ali prije ovog koraka provjerite jeste li instalirali TrueSTUDIO.

Programiranje razvojnog odbora STM32 Nucleo64 pomoću TrueSTUDIO
Sada će se vaš kôd ili projekt automatski otvoriti u TrueSTUDIO ako TrueSTUDIO zatraži mjesto radnog prostora, a zatim pružite mjesto radnog prostora ili idite sa zadanim mjestom.

Korisnik će vidjeti donji zaslon, a zatim će morati kliknuti na kutnu oznaku crvene boje.

I sada možemo vidjeti kod u našem TreuSTUDIO IDE-u. Na lijevoj strani ispod mape 'src' možemo vidjeti druge programske datoteke (s nastavkom.c) koje su za nas već generirane iz STM32Cube. Moramo samo programirati datoteku main.c. Čak i u datoteci main.c već ćemo imati nekoliko stvari koje nam je CubeMX postavio, samo ga moramo urediti kako bi odgovarao našem programu. Kompletni kod unutar datoteke main.c nalazi se na dnu ove stranice.

STM32 Nucleo64 program za upravljanje LED pomoću gumba
Budući da STM32CubeMX generira sve potrebne upravljačke programe i kod, moramo samo konfigurirati LED pin kao izlaz i tipku kao ulaz. Program za upravljanje vodenim pomoću gumba trebao bi biti napisan u datoteci main.c. Kompletni program nalazi se na dnu ove stranice. Objašnjenje je sljedeće
Imamo samo napisani kôd za uključivanje i isključivanje LED diode pomoću gumba. Da bismo to postigli, prvo definiramo igle za LED i tipke. Ovdje smo definirali LED na pin 5 broj PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
I definirajte prekidač na pin broju 13 PORTC-a.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Zatim smo u glavnoj funkciji inicijalizirali sve korištene periferne uređaje.
/ * Inicijalizirajte sve konfigurirane periferne uređaje * / MX_GPIO_Init (); MX_USART2_Init ();
A zatim pročitajte tipku pomoću naredbe if i ako je tipka pronađena pritisnite (LOW), tada će LED prebaciti svoje stanje.
Dok (1) {/ * KORISNIČKI KOD ZAVRŠAVA DOK JE * / Ako (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Zakašnjenje (200); } / * KORISNIČKI KOD POČINJE 3 * /}
Ovdje funkcija HAL_GPIO_ReadPin (SW_PORT, SW_PIN) ima dva argumenta, jedan je PORT, a drugi je pin na koji je spojen prekidač i ovaj je pin konfiguriran kao INPUT tijekom konfiguriranja perifernih uređaja u STM32CubeMX.
Otklanjanje pogrešaka i prijenos koda na razvojnu ploču STM32 Necleo64 pomoću TrueSTUDIO
Sada spojite ploču s računalom pomoću kabela za programiranje. Nakon što ga povežete, upravljački program potreban za ploču trebao bi se automatski preuzeti, to možete provjeriti pomoću upravitelja uređaja.
Zatim pritisnite ikonu za uklanjanje pogrešaka označenu crvenim krugom na donjoj slici da biste sastavili program i ušli u način uklanjanja pogrešaka.

U načinu otklanjanja pogrešaka, kôd će se automatski prenijeti. Sada moramo pokrenuti kod pritiskom na "Nastavi" ili F8 (označen crvenim krugom na donjoj slici).

Sada možemo testirati kontrolu LED-a pritiskom na tipku. Prema kodu, LED bi trebao promijeniti svoje stanje svaki put kad pritisnete tipku. Kompletni rad također se može naći u videozapisu na dnu ove stranice.

Nakon testiranja program također možemo prekinuti pritiskom na ikonu za prekid označenu crvenim krugom na donjoj slici.

