- Välja och ladda ner nödvändiga utvecklingsplattformar för Nucleo64-kort
- Kretsschema och hårdvaruinstallation
- Komma igång med STM32CubeMX för STM32 Nucleo64 Development Boards
- Programmering av STM32 Nucleo64 Development Board med TrueSTUDIO
- STM32 Nucleo64-program för att styra LED med tryckknapp
- Felsökning och uppladdning av kod till STM32 Necleo64 Development Board med TrueSTUDIO
Många av oss borde känna till de populära mikrokontrollerna och utvecklingskorten som Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, etc. Faktum är att för de flesta skulle Arduino ha varit deras första utvecklingskort, men när vi gräver djupt och börjar professionell design kommer vi snart att inse begränsningarna i Arduino (som kostnad, mångsidighet, stabilitet, hastighet etc.) och förstå behovet av att skifta till en mer infödd Microcontroller-plattform som PIC, STM, Renesas, etc.
Vi har redan täckt en sekvens av PIC Microcontroller-tutorials, som guidar nybörjare för att lära sig PIC-mikrokontroller. På samma sätt, från och med den här artikeln, kommer vi också att planera en sekvens av STM32 Nucleo64-utvecklingsstyrelsens handledning som kan hjälpa absoluta nybörjare att lära sig och utveckla med hjälp av STM32-plattformen. Nucleo64 Development Boards är billiga och lättanvända plattformar för professionella utvecklare såväl som för hobbyister. Om du är helt ny på STM32 Nucleo64 Development Boards, kolla in den här Nucleo64 Review-videon för att förstå grunderna för detta kort innan du fortsätter vidare. Videon visar också hur man programmerar STM32 med ARM Mbed Platform men för den här guiden kommer vi att använda en annan gratisplattform från ST Microelectronics som heter TrueSTUDIO.
Obs! Det finns många versioner av STM32 Nucleo64 Development Boards, det speciella kortet som används i denna handledning är NUCLEO-F030R8. Vi har valt denna styrelse främst på grund av dess låga kostnad. Även om du har en annan version räcker det mesta som diskuteras i handledningen för att du ska komma igång.
Välja och ladda ner nödvändiga utvecklingsplattformar för Nucleo64-kort
Att komma igång med vilken mikrokontroller som helst behöver en programmerings-IDE som vi har Arduino IDE för Arduino-kort, Atmel Studio för AVR-mikrokontroller, MP Lab för PIC, etc. Så här behöver vi också en IDE för våra STM32 Nucleo64-kort för att utföra programmering och felsökning. STM32-familjen består av 32-bitars mikrokontroller som stöder följande IDE: er och verktygskedjor:
- IAR Embedded Workbench® för ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- System Workbench för STM32
Här för våra tutorials kommer TrueSTUDIO att användas för att skriva, sammanställa och felsöka kod eftersom det är gratis att ladda ner och använda även för kommersiella projekt utan licenskrav. Sedan kommer STM32CubeMX att användas för att generera kringutrustning för STM32-kort för att göra programmeringen enkel. För att ladda upp vårt program (hex-fil) till vårt utvecklingskort använder folk normalt STM32 ST-LINK- verktyget, men istället använder vi TrueSTUDIO själv för att göra detta. TrueSTUDIO har ett felsökningsläge som gör det möjligt för programmerare att ladda upp hex-filen direkt till STM32-kortet. Både TrueSTUIO och STM32CubeMX är enkla att ladda ner, följ bara länken nedan, registrera dig och ladda ner installationen. Installera dem sedan på din bärbara dator.
- Ladda ner STM32Cube MX
- Ladda ner TrueSTUDIO
Kretsschema och hårdvaruinstallation
Innan vi fortsätter med programvaruavsnittet och kodningen, låt oss förbereda vår styrelse för detta projekt. Som nämnts tidigare i den här artikeln ska vi styra en LED med en tryckknapp. Nu, om du har sett videon som länkats ovan, borde du redan veta att ditt STM32 Development Board har två uppsättningar anslutningsstift på båda sidor som heter ST Morpho pins. Vi har anslutit en tryckknapp och en LED till dessa stift som visas i kretsschemat nedan.
Kretsanslutningar är enkla för detta projekt, vi måste ansluta en LED på PA5 för PORTA och en omkopplare vid PC13 för PORTC med avseende på GND. När anslutningarna gjordes såg min testuppsättning så här ut.
Alternativt kan vi också använda den inbyggda lysdioden och tryckknappen på brädet. Dessa inbyggda lysdioder och tryckknapp är också anslutna vid samma stift som visas i kretsschemat. Vi har lagt till externa komponenter endast för övning. Nedanstående pin-diagram på STM32 Development Board kommer att vara till nytta för att veta var varje morpho-stift är ansluten till ombord.
Komma igång med STM32CubeMX för STM32 Nucleo64 Development Boards
Steg 1: Starta STM32CubeMX efter installationen och välj sedan åtkomstkortets väljare för att välja STM32-kortet.
Steg 2: Sök nu på ditt STM32-kortnamn som NUCLEO-F030R8 och klicka på kortet som visas på bilden. Om du har en annan tavla söker du efter dess respektive namn. Programvaran stöder alla STM32-utvecklingskort från ST Microelectronics.
Steg 3: Klicka nu på ja som visas på bilden nedan för att initialisera alla kringutrustning i standardläge. Vi kan senare ändra de krav som krävs av vårt projekt.
Efter att ha klickat på 'Ja' kommer skärmen att likna bilden nedan och den gröna färgpinnen som indikerar att de är initierade som standard.
Steg 4: Nu kan användare välja önskad inställning från kategorierna. Här i den här handledningen ska vi växla en LED med en tryckknapp. Så vi måste göra LED-stiftet som utgång och byta stift som INPUT.
Du kan välja vilken stift som helst, men jag väljer PA5 och ändrar dess tillstånd till GPIO_Output så att det fungerar som en utgångsstift som visas i bilden nedan.
På samma sätt väljer jag PC13 som GPIO_Input så att jag kan läsa statusen för min tryckknapp.
Alternativt kan vi också konfigurera stift från pinout- och konfigurationsfliken så som visas nedan.
Steg 5: I nästa steg kan användaren ställa in önskad frekvens för mikrokontrollern och stiften enligt extern och intern oscillator. Som standard väljs en intern 8 MHz kristalloscillator och med hjälp av PLL konverteras denna 8 till 48 MHz. Betydelse som standard STM32-kort eller mikrokontroller och Pins fungerar på 48 MHz.
Steg 6: Gå nu in i projektledaren och ge ett namn till ditt projekt, projektplats och välj verktygskedja eller IDE. Här använder vi TrueSTUDIO, så jag har valt samma som visas nedan.
Steg 7: Klicka nu på Generera kodmärke med den röda cirkeln i bilden nedan.
Steg 8: Nu ser du en popup som anges klicka sedan på öppet projekt. Men se till att du har installerat TrueSTUDIO innan det här steget.
Programmering av STM32 Nucleo64 Development Board med TrueSTUDIO
Nu kommer din kod eller ditt projekt att öppnas i TrueSTUDIO automatiskt om TrueSTUDIO frågar efter arbetsplatsplats och ange en arbetsplatsplats eller gå med standardplatsen.
Användaren ser nedanstående skärm och måste sedan klicka på hörnet i röd färg.
Och nu kan vi se koden i vår TreuSTUDIO IDE. På vänster sida under "src" -mappen kan vi se andra programfiler (med.c-tillägg) som redan har genererats för oss från STM32Cube. Vi måste bara programmera main.c-filen. Även i main.c-filen har vi redan få saker inställda för oss av CubeMX, vi behöver bara redigera det för att passa vårt program. Den fullständiga koden i main.c-filen ges längst ner på denna sida.
STM32 Nucleo64-program för att styra LED med tryckknapp
Eftersom alla nödvändiga drivrutiner och koder genereras av STM32CubeMX, behöver vi bara konfigurera en LED-stift som utgång och en tryckknapp som ingång. Programmet för att styra led med tryckknappen ska skrivas i main.c-filen. Hela programmet finns längst ner på denna sida. Förklaringen till det är som följer
Vi har bara skrivit kod för att växla mellan lysdioderna med tryckknappen. För att uppnå detta definierar vi först stift för LED och tryckknappar. Här har vi definierat en LED vid Pin 5-nummer av PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
Och definiera omkopplare vid stift nummer 13 i PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Sedan i huvudfunktionen har vi initialiserat alla använda kringutrustning.
/ * Initiera alla konfigurerade kringutrustning * / MX_GPIO_Init (); MX_USART2_Init ();
Och läs sedan tryckknappen med if-uttalandet och om hittat-knappen trycker på (LOW) så växlar lysdioden dess tillstånd.
While (1) {/ * USER CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Fördröjning (200); } / * ANVÄNDARKOD BÖRJAR 3 * /}
Här har funktionen HAL_GPIO_ReadPin (SW_PORT, SW_PIN) två argument, det ena är PORT och det andra är en stift där omkopplaren är ansluten och den här stiften är konfigurerad som INPUT medan du konfigurerar kringutrustning i STM32CubeMX.
Felsökning och uppladdning av kod till STM32 Necleo64 Development Board med TrueSTUDIO
Anslut nu ditt kort till datorn med programmerarkabeln. När du har anslutit den ska den drivrutin som krävs för styrelsen laddas ner automatiskt, du kan kontrollera detta med enhetshanteraren.
Tryck sedan på felsökningsikonen markerad med den röda cirkeln i bilden nedan för att kompilera programmet och gå in i felsökningsläge.
I felsökningsläge laddas koden automatiskt upp. Nu måste vi köra koden genom att trycka på 'Återuppta' eller F8 (markerad i den röda kretsen på bilden nedan).
Nu kan vi testa kontrollen av LED genom att trycka på tryckknappen. Enligt koden ska lysdioden ändra sitt tillstånd varje gång du trycker på tryckknappen. Hela arbetet finns också i videon som länkas längst ner på denna sida.
Efter testning kan vi också avsluta programmet genom att trycka på avsluta-ikonen, markerad med den röda cirkeln i bilden nedan.