- Velge og laste ned de nødvendige utviklingsplattformene for Nucleo64-brett
- Kretsdiagram og maskinvareoppsett
- Komme i gang med STM32CubeMX for STM32 Nucleo64 Development Boards
- Programmering av STM32 Nucleo64 Development Board ved bruk av TrueSTUDIO
- STM32 Nucleo64 Program for å kontrollere LED ved hjelp av trykknapp
- Feilsøking og opplasting av kode til STM32 Necleo64 Development Board ved bruk av TrueSTUDIO
Mange av oss burde være kjent med de populære mikrokontrollere og utviklingstavler som Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 osv. Faktisk ville Arduino for de fleste ha vært deres første utviklingskort, men når vi graver dypt og begynner profesjonelle design, vil vi snart innse begrensningene til Arduino (som pris, allsidighet, stabilitet, hastighet osv.) og forstå behovet for å skifte til en mer naturlig Microcontroller-plattform som PIC, STM, Renesas, etc.
Vi har allerede dekket en sekvens av PIC Microcontroller tutorials, som guider nybegynnere for å lære PIC microcontrollers. Fra og med denne planen vil vi også planlegge en sekvens av STM32 Nucleo64 Development Board Tutorials som kan hjelpe absolutt nybegynnere å lære og utvikle seg ved hjelp av STM32 Platform. Nucleo64 Development Boards er rimelige og brukervennlige plattformer for profesjonelle utviklere så vel som for hobbyister. Hvis du er helt ny på STM32 Nucleo64 Development Boards, kan du sjekke ut denne Nucleo64 Review-videoen for å forstå det grunnleggende på dette kortet før du går videre. Videoen viser også hvordan du programmerer STM32 ved hjelp av ARM Mbed Platform men for denne opplæringen vil vi bruke en annen gratis å bruke plattform fra ST Microelectronics kalt TrueSTUDIO.
Merk: Det er mange versjoner av STM32 Nucleo64 Development Boards, det spesielle kortet som brukes i denne opplæringen er NUCLEO-F030R8. Vi har valgt dette styret hovedsakelig på grunn av lave kostnader. Selv om du har en annen versjon, vil det meste som er diskutert i opplæringen være tilstrekkelig for deg å komme i gang.
Velge og laste ned de nødvendige utviklingsplattformene for Nucleo64-brett
Å komme i gang med hvilken som helst mikrokontroller vil trenge en programmerings-IDE som vi har Arduino IDE for Arduino-kort, Atmel Studio for AVR-mikrokontroller, MP Lab for PIC, etc. Så her trenger vi også en IDE for STM32 Nucleo64-kortene våre for å utføre programmering og feilsøking. STM32-familien består av 32-biters mikrokontrollere som støtter følgende IDEer og verktøykjeder:
- IAR Embedded Workbench® for ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- System arbeidsbenk for STM32
Her for våre opplæringsprogrammer, vil TrueSTUDIO brukes til å skrive, kompilere og feilsøke kode fordi det er gratis å laste ned og bruke selv for kommersielle prosjekter uten lisenskrav. Deretter vil STM32CubeMX brukes til å generere perifere drivere for STM32-kort for å gjøre programmeringen enkel. For å laste opp vårt program (hex-fil) til utviklingskortet vårt, bruker folk vanligvis STM32 ST-LINK Utility- verktøyet, men i stedet vil vi bruke TrueSTUDIO selv til å gjøre dette. TrueSTUDIO har en feilsøkingsmodus som lar programmerere laste opp hex-filen direkte til STM32-kortet. Både TrueSTUIO og STM32CubeMX er enkle å laste ned, bare følg lenken nedenfor, registrer deg og last ned oppsettet. Installer dem deretter på den bærbare datamaskinen.
- Last ned STM32Cube MX
- Last ned TrueSTUDIO
Kretsdiagram og maskinvareoppsett
Før vi fortsetter med programvareseksjonen og kodingen, la oss forberede styret vårt for dette prosjektet. Som nevnt tidligere i denne artikkelen, skal vi kontrollere en LED ved hjelp av en trykknapp. Nå, hvis du har sett videoen som er lenket ovenfor, bør du allerede vite at STM32 Development Board har to sett med kontaktpinner på hver side kalt ST Morpho pins. Vi har koblet en trykknapp og en LED til disse pinnene som vist i kretsskjemaet nedenfor.
Kretsforbindelser er enkle for dette prosjektet, vi trenger å koble til en LED på PA5 av PORTA og en bryter på PC13 av PORTC med hensyn til GND. Når tilkoblingene ble gjort, så testoppsettet mitt slik ut.
Alternativt kan vi også bruke den innebygde LED-en og trykknappen på tavlen. Disse innebygde lysdiodene og trykknappen kobles også til samme pinne som vist i kretsskjemaet. Vi har bare lagt til eksterne komponenter for øvelse. Nedenfor pin-diagrammet til STM32 Development Board vil være nyttig for å vite hvor hver morpho-pin er koblet til ombord.
Komme i gang med STM32CubeMX for STM32 Nucleo64 Development Boards
Trinn 1: Etter installasjon, start STM32CubeMX, og velg deretter tilgangskortvelgeren for å velge STM32-kortet.
Trinn 2: Søk nå på STM32-kortnavnet ditt, som NUCLEO-F030R8, og klikk på brettet som vises på bildet. Hvis du har et annet bord, søk etter det respektive navnet. Programvaren støtter alle STM32-utviklingskort fra ST Microelectronics.
Trinn 3: Klikk nå på ja som vist på bildet nedenfor, for å initialisere alle eksterne enheter i standardmodus. Vi kan senere endre de nødvendige etter behov fra prosjektet vårt.
Etter å ha klikket på 'Ja', vil skjermen ligne på bildet nedenfor og den grønne fargetappen som indikerer at de er startet som standard.
Trinn 4: Nå kan brukerne velge ønsket innstilling fra kategoriene. Her i denne opplæringen skal vi bytte en LED ved hjelp av en trykknapp. Så vi må lage LED-pinnen som utgang og byttepinne som INNGANG.
Du kan velge hvilken som helst pin, men jeg velger PA5 og endrer tilstanden til GPIO_Output for å få den til å fungere som en output pin som vist på bildet nedenfor.
På samme måte velger jeg PC13 som GPIO_Input slik at jeg kan lese statusen til trykknappen min.
Alternativt kan vi også konfigurere pinner fra pinout og konfigurasjonsfanen, som vist nedenfor.
Trinn 5: I neste trinn kan brukeren stille inn ønsket frekvens for mikrokontrolleren og pinnene i henhold til ekstern og intern oscillator. Som standard er en intern 8 MHz krystalloscillator valgt, og ved å bruke PLL blir denne 8 konvertert til 48 MHz. Betydning som standard STM32-kort eller mikrokontroller og pins fungerer på 48 MHz.
Trinn 6: Gå nå inn i prosjektlederen og gi et navn til prosjektet, prosjektplasseringen, og velg verktøykjede eller IDE. Her bruker vi TrueSTUDIO, så jeg har valgt det samme som vist nedenfor.
Trinn 7: Klikk nå på Generer kodemerke ved den røde sirkelen i bildet nedenfor.
Trinn 8: Nå vil du se en popup som gitt, og klikk deretter på åpent prosjekt. Men sørg for at du har installert TrueSTUDIO før dette trinnet.
Programmering av STM32 Nucleo64 Development Board ved bruk av TrueSTUDIO
Nå vil koden eller prosjektet ditt åpne i TrueSTUDIO automatisk hvis TrueSTUDIO ber om plassering av arbeidsområdet, og deretter oppgi en arbeidsplassplassering eller gå med standardplasseringen.
Brukeren ser skjermbildet nedenfor og må deretter klikke på hjørnemerket i rød farge.
Og nå kan vi se kode i TreuSTUDIO IDE. På venstre side under 'src' -mappen kan vi se andre programfiler (med.c-utvidelse) som allerede er generert for oss fra STM32Cube. Vi må bare programmere main.c-filen. Selv i main.c-filen har vi allerede få ting satt opp for oss av CubeMX, vi trenger bare å redigere det slik at det passer vårt program. Den komplette koden i main.c-filen er gitt nederst på denne siden.
STM32 Nucleo64 Program for å kontrollere LED ved hjelp av trykknapp
Siden all nødvendig driver og kode genereres av STM32CubeMX, trenger vi bare å konfigurere en LED-pinne som utgang og en trykknapp som inngang. Programmet for å kontrollere ledet ved hjelp av trykknappen skal skrives i main.c-filen. Hele programmet finner du nederst på denne siden. Forklaringen på det er som følger
Vi har bare skrevet kode for å bytte lysdiode ved hjelp av trykknappen. For å oppnå dette definerer vi først pinner for LED og trykknapper. Her har vi definert en LED på Pin 5-nummeret til PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
Og definer bryteren på pin nummer 13 i PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Så i hovedfunksjonen har vi initialisert alle brukte eksterne enheter.
/ * Initialiser alle konfigurerte eksterne enheter * / MX_GPIO_Init (); MX_USART2_Init ();
Og så les trykknappen ved hjelp av if-setningen, og hvis funnet-knappen trykk (LAV), vil LED slå tilstanden.
While (1) {/ * USER CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * BRUKERKODE BEGYNNER 3 * /}
Her har funksjonen HAL_GPIO_ReadPin (SW_PORT, SW_PIN) to argumenter, den ene er PORT og den andre er en pin som bryteren er koblet til, og denne pin er konfigurert som INPUT mens du konfigurerer periferiutstyr i STM32CubeMX.
Feilsøking og opplasting av kode til STM32 Necleo64 Development Board ved bruk av TrueSTUDIO
Koble nå kortet til datamaskinen ved hjelp av programmererledningen. Når du kobler til den, skal driveren som kreves for tavlen lastes ned automatisk, du kan sjekke dette ved hjelp av enhetsbehandling.
Trykk deretter på feilsøkingsikonet markert med den røde sirkelen i bildet nedenfor for å kompilere programmet og gå inn i feilsøkingsmodus.
I feilsøkingsmodus vil koden automatisk lastes opp. Nå må vi kjøre koden ved å trykke 'Fortsett' eller F8 (markert i den røde kretsen på bildet nedenfor).
Nå kan vi teste kontrollen av LED ved å trykke på trykknappen. I henhold til koden skal LED-en endre tilstanden hver gang du trykker på trykknappen. Komplett arbeid kan også bli funnet i videoen som er lenket nederst på denne siden.
Etter testing kan vi også avslutte programmet ved å trykke på avslutningsikonet, markert med den røde sirkelen på bildet nedenfor.