- ST-LINK V2
- STM32CubeMX
- Nepieciešamie materiāli
- Shēmas shēma un savienojumi
- Programmas izveidošana un ierakstīšana STM32, izmantojot Keil uVision un ST-Link
- Keil programmētās STM32 plates izeja
- Programma
STM32 mikrokontrolleri, kas izmanto ARM Cortex M arhitektūru, tagad kļūst populāri un tiek izmantoti daudzās lietojumprogrammās tā īpašību, izmaksu un veiktspējas dēļ. Mēs esam ieprogrammējuši STM32F103C8, izmantojot Arduino IDE mūsu iepriekšējās apmācībās. STM32 programmēšana ar Arduino IDE ir vienkārša, jo dažādu sensoru rīcībā ir daudz bibliotēku, lai veiktu jebkuru uzdevumu, mums tikai jāpievieno šīs bibliotēkas programmā. Šī ir vienkārša procedūra, un jūs, iespējams, neiegūsit padziļinātu informāciju par ARM procesoriem. Tāpēc tagad mēs nonākam nākamajā programmēšanas līmenī, ko sauc par ARM programmēšanu. Tādējādi mēs varam ne tikai uzlabot koda struktūru, bet arī ietaupīt atmiņas vietu, neizmantojot nevajadzīgas bibliotēkas.
STMicroelectronics iepazīstināja ar rīku STM32Cube MX, kas ģenerē pamata kodu atbilstoši perifērijas ierīcēm un izvēlētajai STM32 plāksnei. Tāpēc mums nav jāuztraucas par pamata draiveru un perifērijas ierīču kodēšanu. Turklāt šo ģenerēto kodu var izmantot Keil uVision rediģēšanai atbilstoši prasībām. Un visbeidzot, kods tiek ierakstīts STM32, izmantojot ST-Link programmētāju no STMicroelectronics.
Šajā apmācībā mēs uzzināsim, kā programmēt STM32F103C8, izmantojot Keil uVision & STM32CubeMX, veicot vienkāršu spiedpogas un LED saskarnes projektu ar STM32F103C8 Blue Pill paneli. Mēs ģenerēsim kodu, izmantojot STM32Cube MX, pēc tam rediģēsim un augšupielādēsim kodu STM32F103C8, izmantojot Keil uVision. Pirms sīkāku izklāsta mēs vispirms uzzināsim par ST-LINK programmētāju un programmatūras rīku STM32CubeMX.
ST-LINK V2
ST-LINK / V2 ir in-circuit debugger un programmētājs par STM8 un STM32 mikrokontrolleru ģimenes. Mēs varam augšupielādēt kodu STM32F103C8 un citos STM8 un STM32 mikrokontrolleros, izmantojot šo ST-LINK. Viena vada saskarnes moduļa (SWIM) un JTAG / sērijas vadu atkļūdošanas (SWD) saskarnes tiek izmantotas, lai sazinātos ar jebkuru STM8 vai STM32 mikrokontrolleru, kas atrodas lietojumprogrammas dēlī. Tā kā STM32 lietojumprogrammas izmanto USB pilna ātruma saskarni, lai sazinātos ar Atollic, IAR, Keil vai TASKING integrētajām izstrādes vidēm, tāpēc mēs varam izmantot šo aparatūru STM 8 un STM32 mikrokontrolleru programmēšanai.
Augstāk redzams STMicroelectronics ST-LINK V2 atslēgas attēls, kas atbalsta visu STM32 SWD atkļūdošanas saskarnes klāstu, vienkāršu 4 vadu interfeisu (ieskaitot barošanu), ātru un stabilu. Tas ir pieejams dažādās krāsās. Korpuss ir izgatavots no alumīnija sakausējuma. Tam ir zila LED indikācija, jo to izmanto, lai novērotu ST-LINK darba stāvokli. Tapu nosaukumi ir skaidri marķēti uz čaumalas, kā mēs redzam iepriekš attēlā. To var sasaistīt ar Keil programmatūru, kur programmu var mirgot ar STM32 mikrokontrolleriem. Tātad, šajā apmācībā apskatīsim, kā šo ST-LINK programmētāju var izmantot, lai programmētu STM32 mikrokontrolleru. Zemāk esošajā attēlā ir redzamas moduļa ST-LINK V2 tapas.
Piezīme: Pirmo reizi savienojot ST-Link ar datoru. Mums ir nepieciešams instalēt ierīces draiveri. Ierīces draiverus var atrast šajā saitē atbilstoši jūsu operētājsistēmai.
STM32CubeMX
STM32CubeMX rīks ir daļa no STMicroelectronics STMCube. Šis programmatūras rīks atvieglo attīstību, samazinot izstrādes piepūli, laiku un izmaksas. STM32Cube ietver STM32CubeMX, kas ir grafisks programmatūras konfigurācijas rīks, kas ļauj ģenerēt C inicializācijas kodu, izmantojot grafiskos vedņus. Šo kodu var izmantot dažādās izstrādes vidēs, piemēram, keil uVision, GCC, IAR utt. Šo rīku varat lejupielādēt no šīs saites.
STM32CubeMX ir šādas funkcijas
- Piespraust konfliktu risinātāju
- Palīgs pulksteņa koku iestatīšanai
- Enerģijas patēriņa kalkulators
- Lietderība, kas veic MCU perifērijas konfigurāciju, piemēram, GPIO tapas, USART utt
- Lietderība, kas veic MCU perifērijas konfigurāciju starpprogrammatūras kaudzēm, piemēram, USB, TCP / IP utt
Nepieciešamie materiāli
Aparatūra
- STM32F103C8 Blue Pill dēlis
- ST-LINK V2
- Uzspied pogu
- LED
- Maizes dēlis
- Džemperu vadi
Programmatūra
- STM32CubeMX koda ģenerēšanas rīks (saite)
- Keil uVision 5 (saite)
- ST-Link V2 draiveri (saite)
Shēmas shēma un savienojumi
Zemāk ir shēma, lai vienkārši savienotu LED ar STM32 plāksni, izmantojot spiedpogu.
Savienojums starp ST-LINK V2 un STM32F103C8
Šeit STM32 Blue Pill dēlis tiek darbināts no ST-LINK, kas ir savienots ar datora USB portu. Tāpēc mums nav jāattīsta STM32 atsevišķi. Zemāk esošajā tabulā parādīts savienojums starp ST-Link un Blue tablešu plāksni.
STM32F103C8 |
ST-Link V2 |
GND |
GND |
SWCLK |
SWCLK |
SWDIO |
SWDIO |
3V3 |
3.3V |
LED un spiedpoga
Gaismas diode tiek izmantota, lai norādītu Blue Pill dēļa izvadi, nospiežot spiedpogu. LED anods ir savienots ar Blue Pill dēļa tapu PC13 un katods ir iezemēts.
Ir pievienota spiedpoga, lai nodrošinātu ieeju Blue Pill dēļa tapā PA1. Mums jāizmanto arī pievilkšanas rezistors ar vērtību 10k, jo, atlaižot pogu, tapa var peldēt bez jebkādas ieejas. Spiedpogas viens gals ir savienots ar zemi, bet otrs gals ir tapai PA1, un pievilkšanas rezistors 10 k ir pievienots arī 3,3 V Blue Pill plāksnei.
Programmas izveidošana un ierakstīšana STM32, izmantojot Keil uVision un ST-Link
1. solis: - Vispirms instalējiet visus ierīces ST-LINK V2 ierīču draiverus, programmatūras rīkus STM32Cube MX un Keil uVision un instalējiet nepieciešamās pakotnes STM32F103C8.
2. solis: - Otrais solis ir atvērts >> STM32Cube MX
3. solis: - Pēc tam noklikšķiniet uz Jauns projekts
4. solis: - Pēc tam meklējiet un atlasiet mūsu mikrokontrolleru STM32F103C8
5. solis: - Tagad parādās STM32F103C8 tapas izvilkšanas skice, šeit mēs varam iestatīt tapu konfigurācijas. Saskaņā ar mūsu projektu mēs varam izvēlēties arī mūsu tapas perifērijas ierīču sadaļā.
6. solis: - Varat arī tieši noklikšķināt uz tapas, un parādās saraksts, tagad atlasiet nepieciešamo tapas konfigurāciju.
7. solis: - Savam projektam mēs esam izvēlējušies PA1 kā GPIO INPUT, PC13 kā GPIO OUTPUT un SYS atkļūdošanu kā SERIAL WIRE, šeit tikai mēs savienojam ST-LINK SWCLK & SWDIO tapas. Atlasītās un konfigurētās tapas parādās ZAĻĀ krāsā. Jūs to varat atzīmēt zemāk esošajā attēlā.
8. solis: - Pēc tam cilnē Konfigurācija atlasiet GPIO, lai iestatītu GPIO tapu konfigurācijas mūsu izvēlētajām tapām.
9. solis: - Tālāk šajā tapu konfigurācijas lodziņā mēs varam konfigurēt lietotāja etiķeti mūsu izmantotajiem tapām, tas ir, lietotāja definētiem tapu nosaukumiem.
10. solis: - Pēc tam noklikšķiniet uz Projekts >> Ģenerēt kodu .
11. solis: - Tagad parādās projekta iestatījumu dialoglodziņš. Šajā lodziņā izvēlieties projekta nosaukumu un atrašanās vietu, kā arī atlasiet izstrādes vidi. Mēs izmantojam Keil, tāpēc kā IDE atlasiet MDK-ARMv5.
Solis 12: - Nākamais zem Code Generator tab, izvēlieties kopētu tikai nepieciešamos bibliotēkas failus , un pēc tam noklikšķiniet uz Labi.
13. solis: - Tagad tiek parādīts koda ģenerēšanas dialoglodziņš. Atlasiet Atvērt projektu, lai automātiski atvērtu ģenerēto kodu Keil uvsion.
14. solis: - Tagad tiek atvērts rīks Keil uVision ar mūsu ģenerēto kodu STM32CubeMx ar tādu pašu projekta nosaukumu ar nepieciešamo bibliotēku un kodiem, kas ir konfigurēti atlasītajām tapām.
15. solis: - Tagad mums vienkārši jāiekļauj loģika, lai veiktu kādu darbību pie izejas LED (tapa PC13), kad poga tiek nospiesta un atlaista pie GPIO ieejas (tapas PA1). Tāpēc izvēlieties mūsu main.c programmu, lai iekļautu dažus kodus.
16. solis: - Tagad pievienojiet kodu cilnē while (1) , skatiet zemāk redzamo attēlu, kur es izcēlu šo sadaļu, lai nepārtraukti palaistu kodu.
while (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => Poga DETECTS tiek nospiesta {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Lai izlaide būtu augsta, nospiežot pogu, d} cits {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Lai nospiešanas pogu nospiežot, izejas līmenis būtu zems}}
17. solis: - Pēc koda rediģēšanas pabeigšanas cilnē atkļūdošana noklikšķiniet uz ikonas Mērķa opcijas, atlasiet ST-LINK atkļūdotājs
Tāpat noklikšķiniet uz pogas Iestatījumi un pēc tam zem cilnes Flash lejupielāde atzīmējiet izvēles rūtiņu Atiestatīt un palaist un noklikšķiniet uz Labi.
18. solis: - Tagad noklikšķiniet uz Pārveidot ikonu, lai atjaunotu visus mērķa failus.
19. solis: - Tagad varat pieslēgt ST-LINK datoram ar gataviem ķēdes savienojumiem un noklikšķiniet uz ikonas LEJUPIELĀDE vai nospiediet F8, lai mirgot STM32F103C8 ar jūsu izveidoto un rediģēto kodu.
20. solis: - Keil uVision loga apakšdaļā varat pamanīt mirgojošu indikāciju.
Keil programmētās STM32 plates izeja
Tagad, nospiežot spiedpogu, gaismas diode ieslēdzas un, kad to atlaižam, gaismas diode izslēdzas.
Programma
Galvenā daļa, kuru esam pievienojuši ģenerētajā programmā, ir parādīta zemāk. Šis zemāk esošais kods ir jāiekļauj STM32CubeMX ģenerētās programmas main.c programmas (1 ). Jūs varat atgriezties pie 15. un 17. darbības, lai uzzinātu, kā tas jāpievieno main.c programmā.
while (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => Poga DETECTS tiek nospiesta {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Lai izlaide būtu augsta, nospiežot pogu, d} cits {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Lai nospiešanas pogu nospiežot, izejas līmenis būtu zems}}
Pilnīgs projekta izveides un augšupielādes process STM32 dēlī ir izskaidrots arī video, kas sniegts beigās. Arī pilns main.c faila kods ir norādīts zemāk, ieskaitot iepriekš norādīto kodu.
Šeit jūs varat atrast mūsu pilnu STM32 projektu komplektu.