- Izbira in prenos potrebnih razvojnih platform za plošče Nucleo64
- Shema vezja in nastavitev strojne opreme
- Uvod v STM32CubeMX za razvojne plošče STM32 Nucleo64
- Programiranje razvojne plošče STM32 Nucleo64 z uporabo TrueSTUDIO
- Program STM32 Nucleo64 za nadzor LED z gumbom
- Odpravljanje napak in nalaganje kode na razvojno ploščo STM32 Necleo64 z uporabo TrueSTUDIO
Mnogi od nas bi morali poznati priljubljene mikrokrmilnike in razvojne plošče, kot so Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 itd. Pravzaprav bi bil za večino ljudi Arduino njihova prva razvojna plošča, toda ko se poglobimo in začnemo profesionalni modeli, bomo kmalu spoznali omejitve Arduina (kot so stroški, vsestranskost, stabilnost, hitrost itd.) in razumeli potrebo po prehodu na bolj naravno platformo mikrokrmilnika, kot so PIC, STM, Renesas itd.
Obravnavali smo že vrsto vadnic mikrokrmilnika PIC, ki vodijo začetnike pri učenju mikrokrmilnikov PIC. Podobno bomo s tem člankom načrtovali tudi zaporedje vadnic za razvojni odbor STM32 Nucleo64, ki bodo absolutnim začetnikom lahko pomagali pri učenju in razvoju s pomočjo platforme STM32. Razvojne plošče Nucleo64 so poceni in enostavna platforma za profesionalne razvijalce in ljubitelje. Če ste popolnoma novi pri razvojnih odborih STM32 Nucleo64, si oglejte ta videoposnetek Nucleo64 Review, da boste razumeli osnove te plošče, preden nadaljujete. Video prikazuje tudi, kako programirati STM32 z uporabo platforme ARM Mbed ampak za to vadnico bomo uporabili drugo brezplačno platformo podjetja ST Microelectronics, imenovano TrueSTUDIO.
Opomba: Obstaja veliko različic razvojnih plošč STM32 Nucleo64, posebna plošča, uporabljena v tej vadnici, je NUCLEO-F030R8. To ploščo smo izbrali predvsem zaradi nizkih stroškov. Tudi če imate drugačno različico, bo za začetek zadostovala večina stvari, o katerih smo razpravljali v vadnici.
Izbira in prenos potrebnih razvojnih platform za plošče Nucleo64
Za začetek uporabe katerega koli mikrokrmilnika bo potreben IDE za programiranje, kot imamo Arduino IDE za plošče Arduino, Atmel Studio za mikrokrmilnik AVR, MP Lab za PIC itd. Družino STM32 sestavljajo 32-bitni mikrokrmilniki, ki podpirajo naslednje IDE-je in verige orodij:
- IAR Embedded Workbench® za ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- Sistemska delovna miza za STM32
Tukaj za naše vadnice bo TrueSTUDIO uporabljen za pisanje, prevajanje in odpravljanje napak, ker ga lahko brezplačno prenesete in uporabite tudi za komercialne projekte brez kakršne koli zahteve po licenci. Nato bo STM32CubeMX uporabljen za generiranje zunanjih gonilnikov za plošče STM32 za lažje programiranje. Za nalaganje našega programa (šestnajstiška datoteka) na našo razvojno ploščo ljudje običajno uporabljajo orodje STM32 ST-LINK Utility, vendar bomo za to uporabili TrueSTUDIO. TrueSTUDIO ima način za odpravljanje napak, ki programerjem omogoča nalaganje šestnajstiške datoteke neposredno na ploščo STM32. Tako TrueSTUIO kot STM32CubeMX je enostavno prenesti, samo sledite spodnji povezavi, se prijavite in prenesite namestitev. Nato jih namestite na svoj prenosnik.
- Prenesite STM32Cube MX
- Prenesite TrueSTUDIO
Shema vezja in nastavitev strojne opreme
Preden nadaljujemo s poglavjem o programski opremi in kodiranjem, pripravimo naš forum za ta projekt. Kot smo že omenili v tem članku, bomo LED upravljali s pomočjo gumba. Če ste že videli video, povezan zgoraj, bi morali že vedeti, da ima vaša razvojna plošča STM32 dva kompleta priključnih zatičev na obeh straneh, imenovanih ST Morpho zatiči. Na te nožice smo priklopili tipko in LED, kot je prikazano na spodnjem vezju.
Vezje vezja so za ta projekt enostavne, na PA5 PORTA moramo povezati LED in stikalo na PC13 PORTC glede na GND. Ko so bile vzpostavljene povezave, je bila moja testna postavitev videti tako.
Lahko pa uporabimo tudi vgrajeno LED in gumb na plošči. Te vgrajene LED in tipke so tudi povezane na isti zatič, kot je prikazano na vezju. Zunanje komponente smo dodali samo za vajo. Spodnji diagram pin STM32 razvojne plošče bo prišel prav, če želite vedeti, kje so vsi morfo zatiči povezani na krov.
Uvod v STM32CubeMX za razvojne plošče STM32 Nucleo64
1. korak: Po namestitvi zaženite STM32CubeMX, nato izberite izbirnik plošče za dostop, da izberete ploščo STM32.
2. korak: Zdaj poiščite ploščo po imenu plošče STM32, kot je NUCLEO-F030R8, in kliknite ploščo, ki je prikazana na sliki. Če imate drugo ploščo, poiščite njeno ime. Programska oprema bo podpirala vse razvojne plošče STM32 podjetja ST Microelectronics.
3. korak: Zdaj kliknite da, kot je prikazano na spodnji sliki, da inicializirate vse zunanje naprave v privzetem načinu. Pozneje lahko spremenimo zahtevane, kot jih potrebuje naš projekt.
Po kliku na 'Da' bo zaslon podoben spodnji sliki in zeleni barvni žebljiček, kar kaže, da so privzeto sproženi.
4. korak: Zdaj lahko uporabniki izberejo želeno nastavitev med kategorijami. Tu v tej vadnici bomo s pritiskom na gumb preklopili LED. Torej, moramo narediti LED pin kot izhodni in stikala pin kot vhod.
Izberete lahko kateri koli pin, vendar jaz izbiram PA5 in spreminjam njegovo stanje v GPIO_Output, da deluje kot izhodni pin, kot je prikazano na spodnji sliki.
Podobno kot GPIO_Input izbiram PC13, da lahko preberem stanje svojega gumba.
Lahko pa tudi nastavimo nožice na zavihku pinout in configuration, kot je prikazano spodaj.
5. korak: V naslednjem koraku lahko uporabnik nastavi želeno frekvenco mikrokrmilnika in nožic glede na zunanji in notranji oscilator. Privzeto je izbran notranji 8 MHz kristalni oscilator in z uporabo PLL se ta 8 pretvori v 48 MHz. Pomen privzeto STM32 plošča ali mikrokrmilnik in zatiči delujejo na 48 MHz.
6. korak: Zdaj se premaknite v vodjo projekta in dodajte ime svojemu projektu, lokaciji projekta in izberite orodjarno ali IDE. Tu uporabljamo TrueSTUDIO, zato sem izbral enako, kot je prikazano spodaj.
7. korak: Zdaj kliknite na Generate Code mark z rdečim krogom na spodnji sliki.
Korak 8: Zdaj boste videli pojavno okno, kot je dano, nato kliknite na odprti projekt. Pred tem korakom pa preverite, ali ste namestili TrueSTUDIO.
Programiranje razvojne plošče STM32 Nucleo64 z uporabo TrueSTUDIO
Zdaj se bo vaša koda ali projekt samodejno odprl v TrueSTUDIO, če TrueSTUDIO zahteva lokacijo delovnega prostora, nato pa navedite lokacijo delovnega prostora ali izberite privzeto lokacijo.
Uporabnik bo videl spodnji zaslon in nato moral klikniti na vogalni znak v rdeči barvi.
Zdaj lahko v našem ID-ju TreuSTUDIO vidimo kodo. Na levi strani pod mapo 'src' lahko vidimo druge programske datoteke (s pripono.c), ki so bile za nas že generirane iz STM32Cube. Samo datoteko main.c moramo programirati. Tudi v datoteki main.c bomo že imeli nekaj stvari, ki nam jih je postavil CubeMX, le urediti jih moramo, da ustrezajo našemu programu. Popolna koda v datoteki main.c je podana na dnu te strani.
Program STM32 Nucleo64 za nadzor LED z gumbom
Ker vse zahtevane gonilnike in kodo generira STM32CubeMX, moramo za izhod konfigurirati le LED-zatič in kot vhodni gumb. Program za nadzor vodenja s pomočjo gumba naj bo zapisan v datoteki main.c. Celoten program najdete na dnu te strani. Razlaga zanj je naslednja
Napisali smo samo kodo za vklop LED s pomočjo gumba. Da bi to dosegli, najprej določimo nožice za LED in tipke. Tu smo na pin 5 številko PORTA določili LED
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
In definirajte stikalo na pin številki 13 PORTC-a.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Nato smo v glavni funkciji inicializirali vse uporabljene zunanje naprave.
/ * Inicializirajte vse konfigurirane zunanje naprave * / MX_GPIO_Init (); MX_USART2_Init ();
Nato preberite gumb s pomočjo stavka if in če gumb najdete pritisnite (LOW), potem bo LED preklopil svoje stanje.
Medtem ko (1) {/ * UPORABNIŠKA KODA SE KONČA, KOT JE * / Če (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * KODA UPORABNIKA ZAČNI 3 * /}
Tu ima funkcija HAL_GPIO_ReadPin (SW_PORT, SW_PIN) dva argumenta, eden je PORT, drugi pa pin, na katerega je priključeno stikalo, in ta pin je konfiguriran kot INPUT, medtem ko konfigurirate zunanje naprave v STM32CubeMX.
Odpravljanje napak in nalaganje kode na razvojno ploščo STM32 Necleo64 z uporabo TrueSTUDIO
Zdaj povežite ploščo z računalnikom s kablom programerja. Ko ga povežete, je treba samodejno prenesti gonilnik, potreben za ploščo, to lahko preverite z upraviteljem naprav.
Nato pritisnite ikono za odpravljanje napak, označeno z rdečim krogom na spodnji sliki, da sestavite program in vstopite v način za odpravljanje napak.
V načinu za odpravljanje napak se bo koda samodejno naložila. Zdaj moramo zagnati kodo s pritiskom na »Nadaljuj« ali F8 (označeno v rdečem vezju na spodnji sliki).
Zdaj lahko s pritiskom na gumb preizkusimo nadzor LED. V skladu s kodo mora LED ob vsakem pritisku na gumb spremeniti svoje stanje. Celotno delo najdete tudi v videoposnetku na dnu te strani.
Po preizkusu lahko program zaključimo tudi s pritiskom na ikono za prekinitev, označeno z rdečim krogom na spodnji sliki.