- Reikiamų „Nucleo64“ plokščių kūrimo platformų pasirinkimas ir atsisiuntimas
- Grandinės schema ir techninės įrangos nustatymas
- Pradžia nuo STM32CubeMX, skirtos STM32 „Nucleo64“ kūrimo plokštėms
- STM32 „Nucleo64 Development Board“ programavimas naudojant „TrueSTUDIO“
- STM32 „Nucleo64“ programa, skirta valdyti šviesos diodus naudojant mygtuką
- Derinimas ir kodo įkėlimas į STM32 Necleo64 plėtros valdybą naudojant „TrueSTUDIO“
Daugelis iš mūsų turėtų būti susipažinę su populiariais mikrovaldikliais ir programavimo plokštėmis, tokiomis kaip „Arduino“, „Raspberry Pi“, ESP8266, „NoduMCU“, 8051 ir kt. profesionalūs dizainai, mes greitai suprasime „Arduino“ apribojimus (pvz., kainą, universalumą, stabilumą, greitį ir kt.) ir suprasime, kad reikia pereiti prie natūralesnės mikrovaldiklio platformos, tokios kaip PIC, STM, „Renesas“ ir kt.
Mes jau apėmėme PIC mikrovaldiklių pamokų seką, kuri padeda pradedantiesiems mokytis PIC mikrovaldiklių. Panašiai, pradėdami nuo šio straipsnio, mes taip pat suplanuosime STM32 „Nucleo64“ plėtros tarybos pamokų seką, kuri gali padėti pradedantiesiems mokytis ir tobulėti naudojant STM32 platformą. „Nucleo64“ kūrimo plokštės yra pigios ir lengvai naudojamos platformos profesionaliems kūrėjams, taip pat mėgėjams. Jei esate visiškai naujas „ STM32 Nucleo64“ kūrimo plokščių vartotojas, prieš tęsdami peržiūrėkite šį „Nucleo64 apžvalgos“ vaizdo įrašą, kad suprastumėte šios plokštės pagrindus. Vaizdo įraše taip pat parodoma, kaip programuoti STM32 naudojant „ARM Mbed Platform“ bet šiai pamokai naudosime dar vieną „ST Microelectronics“ nemokamai naudojamą platformą, pavadintą „TrueSTUDIO“.
Pastaba: Yra daugybė „STM32 Nucleo64“ kūrimo plokščių versijų, ypač šioje pamokoje naudojama plokštė yra NUCLEO-F030R8. Šią plokštę pasirinkome daugiausia dėl mažos kainos. Net jei turite kitą versiją, jums pakaks daugelio dalykų, aptartų pamokoje, kad pradėtumėte.
Reikiamų „Nucleo64“ plokščių kūrimo platformų pasirinkimas ir atsisiuntimas
Pradedant nuo bet kokio mikrovaldiklio reikės programavimo IDE, kaip mes turime „Arduino IDE“, skirtą „Arduino“ plokštėms, „Atmel Studio“, skirtą mikrovaldikliui „AVR“, „MP Lab“, skirtą PIC, ir tt Taigi čia taip pat reikia IDE, skirtos mūsų STM32 „Nucleo64“ plokštėms, kad galėtume atlikti programavimą ir derinimą. STM32 šeimą sudaro 32 bitų mikrovaldikliai, palaikantys šiuos IDE ir įrankių grandines:
- IAR Embedded Workbench® for ARM® (EWARM).
- „MDK-ARM Keil“
- „TrueSTUDIO“
- STM32 sistemos darbastalis
Čia mūsų pamokoms „TrueSTUDIO“ bus naudojamas rašyti, kaupti ir derinti kodą, nes jį galima nemokamai atsisiųsti ir naudoti net komerciniams projektams, nereikalaujant jokių licencijų. Tada STM32CubeMX bus naudojamas generuoti STM32 plokščių periferinius tvarkykles, kad būtų lengviau programuoti. Norėdami įkelti savo programą (šešioliktainį failą) į savo kūrimo plokštę, žmonės paprastai naudoja „ STM32 ST-LINK Utility“ įrankį, tačiau tam naudosime pačią „TrueSTUDIO“. „TrueSTUDIO“ yra derinimo režimas, leidžiantis programuotojams įkelti šešioliktainį failą tiesiai į STM32 plokštę. Tiek „TrueSTUIO“, tiek „STM32CubeMX“ lengva atsisiųsti, tiesiog spustelėkite žemiau esančią nuorodą, prisiregistruokite ir atsisiųskite sąranką. Tada įdiekite juos į savo nešiojamąjį kompiuterį.
- Atsisiųskite STM32Cube MX
- Atsisiųskite „TrueSTUDIO“
Grandinės schema ir techninės įrangos nustatymas
Prieš tęsdami programinės įrangos skyrių ir kodavimą, paruoškime savo lentą šiam projektui. Kaip minėta anksčiau šiame straipsnyje, mes valdysime šviesos diodą naudodami mygtuką. Dabar, jei matėte aukščiau susietą vaizdo įrašą, jau turėtumėte žinoti, kad jūsų STM32 plėtros plokštėje yra du jungčių kaiščių rinkiniai iš abiejų pusių, vadinamų ST Morpho kaiščiais. Prie šių kaiščių prijungėme mygtuką ir šviesos diodą, kaip parodyta žemiau esančioje grandinės schemoje.
Šiam projektui jungti grandines yra lengva: mes turime prijungti šviesos diodą PORTA PA5 ir jungiklį PC13 iš PORTC, atsižvelgiant į GND. Kai tik buvo užmegzti ryšiai, mano bandymo sąranka atrodė taip.
Arba mes taip pat galime naudoti įmontuotą šviesos diodą ir mygtuką, esantį lentoje. Šie įmontuoti šviesos diodai ir mygtukas taip pat prijungti prie to paties kaiščio, kaip parodyta grandinės schemoje. Išorinius komponentus pridėjome tik praktikai. Žemiau pateikiama STM32 plėtros valdybos kaiščių schema bus naudinga norint sužinoti, kur kiekvienas morfo kaištis yra prijungtas prie laive.
Pradžia nuo STM32CubeMX, skirtos STM32 „Nucleo64“ kūrimo plokštėms
1 žingsnis: Po įdiegimo paleiskite STM32CubeMX, tada pasirinkite prieigos plokštės parinkiklį, kad pasirinktumėte STM32 plokštę.
2 žingsnis: Dabar ieškokite lentos pagal savo STM32 plokštės pavadinimą, pvz., NUCLEO-F030R8, ir spustelėkite lentą, rodomą paveikslėlyje. Jei turite kitą lentą, ieškokite atitinkamo pavadinimo. Programinė įranga palaikys visas STM32 kūrimo plokštes iš ST Microelectronics.
3 žingsnis: Dabar spustelėkite „Taip“, kaip parodyta paveikslėlyje, kad inicializuotumėte visus išorinius įrenginius numatytuoju režimu. Vėliau galime pakeisti reikalingus, jei to reikia mūsų projektui.
Spustelėjus „Taip“, ekranas bus panašus į žemiau esantį paveikslėlį ir žalios spalvos smeigtuką, nurodantį, kad jie yra pradėti pagal numatytuosius nustatymus.
4 žingsnis: Dabar vartotojai gali pasirinkti norimą nustatymą iš kategorijų. Čia, šioje pamokoje, mes perjungsime šviesos diodą naudodami mygtuką. Taigi, mes turime padaryti LED kaištį kaip išvestį ir jungiklio kaištį kaip INPUT.
Galite pasirinkti bet kurį kaištį, bet aš pasirenku PA5 ir pakeičiu jo būseną į GPIO_Output, kad jis veiktų kaip išvesties kaištis, kaip parodyta žemiau esančiame paveikslėlyje.
Panašiai renkuosi PC13 kaip GPIO_Input, kad galėčiau perskaityti savo mygtuko būseną.
Arba taip pat galime sukonfigūruoti kaiščius iš „ Pinout“ ir „Configuration“ skirtuko, taip pat kaip parodyta žemiau.
5 žingsnis: kitame etape vartotojas gali nustatyti norimą mikrovaldiklio ir kaiščių dažnį pagal išorinį ir vidinį osciliatorių. Pagal numatytuosius nustatymus yra pasirinktas vidinis 8 MHz kristalinis osciliatorius ir naudojant PLL, šis 8 konvertuojamas į 48MHz. Pagal numatytąją reikšmę STM32 plokštė arba mikrovaldiklis ir „Pins“ veiks 48 MHz dažniu.
6 žingsnis: Dabar perkelkite projekto valdytoją ir nurodykite savo projekto pavadinimą, projekto vietą ir pasirinkite įrankių grandinę arba IDE. Čia mes naudojame „TrueSTUDIO“, todėl aš pasirinkau tą patį, kaip parodyta žemiau.
7 žingsnis: Dabar spustelėkite „Generuoti kodą“ pagal raudoną apskritimą žemiau esančiame paveikslėlyje.
8 žingsnis: Dabar pamatysite pateiktą iššokantį langą, tada spustelėkite atidarytą projektą. Tačiau prieš šį veiksmą įsitikinkite, kad įdiegėte „TrueSTUDIO“.
STM32 „Nucleo64 Development Board“ programavimas naudojant „TrueSTUDIO“
Dabar jūsų kodas ar projektas „TrueSTUDIO“ bus atidarytas automatiškai, jei „TrueSTUDIO“ paprašys pateikti darbo srities vietą, tada nurodykite darbo srities vietą arba eikite su numatytąja vieta.
Vartotojas pamatys žemiau pateiktą ekraną ir turės spustelėti raudonos spalvos kampinį ženklą.
Dabar mes galime pamatyti kodą savo „TreuSTUDIO IDE“. Kairėje pusėje po aplanku „src“ matome kitus programos failus (su.c plėtiniu), kurie jau buvo sugeneruoti mums iš STM32Cube. Mes tiesiog turime užprogramuoti main.c failą. Net „main.c“ faile mes jau turėsime keletą dalykų, kuriuos mums nustatė „CubeMX“, mes tik turime redaguoti, kad tiktų mūsų programai. Visas kodas main.c faile yra pateiktas šio puslapio apačioje.
STM32 „Nucleo64“ programa, skirta valdyti šviesos diodus naudojant mygtuką
Kadangi visą reikiamą tvarkyklę ir kodą sugeneruoja STM32CubeMX, mes turime sukonfigūruoti tik LED kaištį kaip išvestį ir mygtuką kaip įvestį. Programa, leidžianti valdyti LED naudojant paspaudimo mygtuką, turėtų būti parašyta faile main.c. Visą programą rasite šio puslapio apačioje. Jo paaiškinimas yra toks
Mes turime tik parašytą kodą, kaip perjungti šviesos diodą naudojant mygtuką. Norėdami tai pasiekti, pirmiausia nustatome kaiščius LED ir mygtukams. Čia mes nustatėme šviesos diodą prie PORTA 5 kaiščio skaičiaus
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
Ir nustatykite jungiklį PORTC kaištyje Nr. 13.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Tada atlikdami pagrindinę funkciją, mes inicijavome visus naudojamus išorinius įrenginius.
/ * Inicializuoti visus sukonfigūruotus periferinius įrenginius * / MX_GPIO_Init (); MX_USART2_Init ();
Tada perskaitykite mygtuką naudodami „if“ teiginį ir jei radote mygtuką, paspauskite (LOW), tada LED pakeis savo būseną.
Nors (1) {/ * VARTOTOJO KODAS PABAIGA, KADANGI * / Jei (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * VARTOTOJO KODAS PRADŽIA 3 * /}
Čia HAL_GPIO_ReadPin (SW_PORT, SW_PIN) funkcija turi du argumentus, vienas yra Uostas, o kitas yra kaištis, prie kurio prijungtas jungiklis, o šis kaištis konfigūruojamas kaip INPUT, kai konfigūruojamas periferinis įrenginys STM32CubeMX.
Derinimas ir kodo įkėlimas į STM32 Necleo64 plėtros valdybą naudojant „TrueSTUDIO“
Dabar prijunkite savo plokštę prie kompiuterio naudodami programuotojo laidą. Jį prijungus, lentai reikalinga tvarkyklė turėtų būti automatiškai atsisiųsta, tai galite patikrinti naudodami įrenginių tvarkytuvę.
Tada paspauskite derinimo piktogramą, pažymėtą raudonu apskritimu žemiau pateiktame paveikslėlyje, kad sukompiluotumėte programą ir pereitumėte į derinimo režimą.
Derinimo režimu kodas bus automatiškai įkeliamas. Dabar turime paleisti kodą paspausdami „Atnaujinti“ arba F8 (pažymėti raudonoje grandinėje žemiau esančiame paveikslėlyje).
Dabar galime patikrinti LED valdymą paspausdami mygtuką. Pagal kodą šviesos diodas turėtų pakeisti savo būseną kiekvieną kartą, kai paspausite mygtuką. Visą darbą taip pat galite rasti vaizdo įraše, susietame šio puslapio apačioje.
Po bandymo taip pat galime nutraukti programą paspausdami nutraukimo piktogramą, pažymėtą raudonu apskritimu žemiau esančiame paveikslėlyje.