I denne leksjonen skal du lære hvordan du lager ditt første prosjekt i STM32CubeIDE ved å lage den beryktete 'Hello World' ekvivalenten på en microcontroller => dvs å blinke en LED!
Koble Nucleo kortet til din pc med medfølgende USB kabel. På kortet er en grønn LED med designasjon LD4. I software prosjektet som lages så refereres denne som LED_GREEN. Det er denne vi skal lage et prosjekt for å styre. Se bilde under for et oversiktsbilde av utviklingskortet.
Ekspansjonskortet brukes ikke i denne øvelsen og skal ikke plugges inn enda.
- Åpne opp STM32CubeIDE
- Velg
Start new STM32 project
- Du vil nå bli presentert med STM32CubeIDE sin hardware picker. Her kan man velge konfigurasjon basert på microcontroller eller utviklingskort.
- Trykk på
Board Selector
tabben og tast inNUCLEO-G0B1RE
underCommercial Part Number
. - Under Boards List, så vil vårt utviklingskort dukke opp. Velg dette og trykk
Next
knappen. Tips: Legg in dette som et favoritt kort ved å klikke på stjerna når du velger kortet, så blir den lettere å finne neste gang! - Du vil nå få et vindu opp med ønsket project parametere. Skriv inn
blinky
som projekt navn og la resten være med defaults. TrykkFinish
knappen. - I IDE grensesnittet, så vil du bli presentert med en grafisk representasjon av blinky.ios filen, som er filen man spesifiserer microcontrollerens hardware ressurser man ønsker å bruke i prosjektet. Siden vi har valgt et allerede kjent utviklingskort, så kan man se at pinnene på mikrokontrolleren er allerede satt opp.
- Legg merke til pinne PA5, som har fått et alias navn
LED_GREEN
. På kretskortet så har denne designasjonenLD4
. Utforsk gjerne grensesnittet her litt, ekspander for eksempelSystem Core
seksjonen på venstre og trykk påGPIO
. Da vil du få seLED_GREEN
pinnen definert med sine attributer satt. Gjør deg kjent med de forskjellige seksjonene. - Under
Project Explorer
på venstre siden, ekspanderCore
folderen og såSrc
folderen. Du vil nå finnemain.c
filen, dobbelklikk på denne. - Sjekk at prosjektet kompilerer ved å velge meny tittelen
Project
og så videreBuild All
. - Hvis det går bra, så er du klar til å legge til litt kode! Finn seksjonen under i
main.c
filen:
...
/* Infinite loop */
/* USER CODE BEGIN WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
Legg til følgende kode:
...
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin);
HAL_Delay(500);
}
/* USER CODE END 3 */
- Sjekk at prosjektet kompilerer ved å velge meny tittelen
Project
og så videreBuild All
. - Hvis alt er ok, så kan du nå velge meny tittelen
Run
og så videreRun
. En pop up vil nok dukke opp med valg av debug konfigurasjon, aksepter defaults og gå videre. - I noen tilfeller så vil miljøet spørre om du ønsker å oppdatere firmware på debuggeren som sitter på utviklingskortet, si ja til dette.
- Når prosessen er ferdig, så lastes din kode opp til kortet. Du vil nå se at
LD4/LED GREEN
på kortet blinke av og på med 500ms mellomrom. - Gratulerer, du har nå laget et prosjekt med kjørende kode for en STM32 mikrokontroller!
- For å vise hardware debugging mulighetene, så kan du nå velge meny tittelen
Run
og så videreDebug
. Miljøet vil nå laste opp siste versjon av koden til kortet og så stoppe ved første instruksjon i koden din. - Du kan nå velge å steppe inn/over/ut av kodesnutter i sanntid via knappene som er rett under meny baren. Du kan også samtidig se på variabler, definere breakpoints, se på assembler instruksjonene basert på hvor du er i koden. Enjoy!
- Andre tips: Trykk
F3
med musepilen over en funksjon for å hoppe til deklarasjonen av denne. Nyttig å bruke med HAL funksjonene, siden dokumentasjonen for disse er å finne i kildekoden til disse.