- ST-LINK V2
- STM32CubeMX
- Tarvittavat materiaalit
- Piirikaavio ja liitännät
- Ohjelman luominen ja polttaminen STM32: een Keil uVisionin ja ST-Linkin avulla
- Keil-ohjelmoidun STM32-kortin lähtö
- Ohjelmoida
ARM Cortex M -arkkitehtuuria käyttävät STM32-mikrokontrollerit ovat nyt suosittuja ja niitä käytetään monissa sovelluksissa ominaisuuden, kustannusten ja suorituskyvyn vuoksi. Olemme ohjelmoineet STM32F103C8: n aiemmissa opetusohjelmissamme Arduino IDE: n avulla. STM32: n ohjelmointi Arduino IDE: llä on helppoa, koska eri antureille on käytettävissä paljon kirjastoja minkä tahansa tehtävän suorittamiseen, meidän on vain lisättävä nämä kirjastot ohjelmaan. Tämä on helppo toimenpide, etkä välttämättä opi perusteellisesti ARM-prosessoreista. Joten nyt olemme siirtymässä seuraavalle ohjelmointitasolle nimeltä ARM-ohjelmointi. Tällä tavoin voimme paitsi parantaa koodin rakennetta, myös säästää muistitilaa käyttämättä tarpeettomia kirjastoja.
STMicroelectronics esitteli työkalun nimeltä STM32Cube MX, joka tuottaa peruskoodin oheislaitteiden ja valitun STM32-kortin mukaan. Joten meidän ei tarvitse huolehtia perusohjainten ja oheislaitteiden koodaamisesta. Lisäksi tätä luotua koodia voidaan käyttää Keil uVision -ohjelmassa vaatimuksen muokkaamiseen. Ja lopuksi koodi poltetaan STM32: een STMicroelectronicsin ST-Link-ohjelmoijalla.
Tässä opetusohjelmassa opitaan, kuinka ohjelmoida STM32F103C8 Keil uVision & STM32CubeMX -ohjelmistolla tekemällä yksinkertainen projekti, jossa painike ja LED yhdistetään STM32F103C8 Blue Pill -levyyn. Luomme koodin STM32Cube MX: llä ja muokkaamme ja lähetämme koodin STM32F103C8: een käyttämällä Keil uVisionia. Ennen kuin pääset yksityiskohtiin, opimme ensin ST-LINK-ohjelmoijasta ja STM32CubeMX-ohjelmistotyökalusta.
ST-LINK V2
ST-LINK / V2 on in-circuit debuggeri ja ohjelmoija varten ohjaimet STM8 ja STM32 mikro perheitä. Voimme lähettää koodin STM32F103C8: een ja muihin STM8 & STM32 -mikro-ohjaimiin tällä ST-LINKillä. Yhden johtimen liitäntämoduulia (SWIM) ja JTAG / sarjajohtojen virheenkorjausta (SWD) käytetään rajapintaan kommunikoimaan minkä tahansa sovelluskortilla sijaitsevan STM8- tai STM32-mikrokontrollerin kanssa. Koska STM32-sovellukset käyttävät USB-täyden nopeuden rajapintaa kommunikoimaan Atollic-, IAR-, Keil- tai TASKING-integroitujen kehitysympäristöjen kanssa, voimme käyttää tätä laitteistoa STM 8- ja STM32-mikrokontrollerien ohjelmointiin.
Yllä on kuva STMicroelectronicsin ST-LINK V2 -avaimesta, joka tukee kaikkia STM32 SWD -vianetsintäliittymän, yksinkertaisen 4-johdinliitännän (mukaan lukien virta), nopeaa ja vakaa. Sitä on saatavana useina väreinä. Runko on valmistettu alumiiniseoksesta. Siinä on sininen LED-merkkivalo, koska sitä käytetään ST-LINKin toimintatilan tarkkailuun. Tappien nimet on merkitty selvästi kuoreen, kuten näemme yllä olevasta kuvasta. Se voidaan liittää Keil-ohjelmistoon, jossa ohjelma voidaan välittää STM32-mikrokontrollereille. Katsotaan siis tässä opetusohjelmassa, kuinka tätä ST-LINK-ohjelmoijaa voidaan käyttää STM32-mikrokontrollerin ohjelmointiin. Kuvan alla näkyvät ST-LINK V2 -moduulin nastat.
Huomaa: Kun yhdistät ST-Linkin tietokoneeseen ensimmäistä kertaa, tarvitsemme laiteohjaimen asennuksen. Laiteohjaimet löytyvät tältä linkiltä käyttöjärjestelmän mukaan.
STM32CubeMX
STM32CubeMX -työkalu on osa STMicroelectronics STMCube -sovellusta. Tämä ohjelmistotyökalu tekee kehityksestä helppoa vähentämällä kehitystyötä, aikaa ja kustannuksia. STM32Cube sisältää STM32CubeMX, joka on graafinen ohjelmistokonfigurointityökalu, joka mahdollistaa C-alustuskoodin luomisen graafisten ohjattujen toimintojen avulla. Koodia voidaan käyttää erilaisissa kehitysympäristöissä, kuten keil uVision, GCC, IAR jne. Voit ladata tämän työkalun seuraavasta linkistä.
STM32CubeMX: llä on seuraavat ominaisuudet
- Kiinnitä konfliktien ratkaisija
- Kellopuun asettamisavustaja
- Virrankulutuksen laskin
- Apuohjelma, joka suorittaa MCU-oheislaitteiden kokoonpanon, kuten GPIO-nastat, USART jne
- Apuohjelma, joka suorittaa MCU-oheislaitteiden kokoonpanon väliohjelmistopinoille, kuten USB, TCP / IP jne
Tarvittavat materiaalit
Laitteisto
- STM32F103C8 sininen pillerilauta
- ST-LINK V2
- Paina nappia
- LED
- Leipälauta
- Neulalangat
Ohjelmisto
- STM32CubeMX-koodinluontityökalu (linkki)
- Keil uVision 5 (linkki)
- ST-Link V2 -ohjaimet (linkki)
Piirikaavio ja liitännät
Alla on kytkentäkaavio, jolla LED voidaan kytkeä yksinkertaisesti STM32-kortilla painikkeella.
Yhteys ST-LINK V2: n ja STM32F103C8: n välillä
Tässä STM32 Blue Pill -kortti saa virran ST-LINKistä, joka on kytketty tietokoneen USB-porttiin. Joten meidän ei tarvitse virrata STM32: tä erikseen. Seuraavassa taulukossa on esitetty yhteys ST-Linkin ja Blue-pillerilevyn välillä.
STM32F103C8 |
ST-Link V2 |
GND |
GND |
SWCLK |
SWCLK |
SWDIO |
SWDIO |
3V3 |
3,3 V |
LED ja painike
LEDiä käytetään osoittamaan Blue Pill -levyn lähtö, kun painat painiketta. LEDien anodi on kytketty Blue Pill -levyn tapiin PC13 ja katodi on maadoitettu.
Painike on kytketty antaa panoksensa pin PA1 Blue Pill aluksella. Meidän on käytettävä myös vetovastusta, jonka arvo on 10k, koska tappi saattaa kellua ilman mitään syötettä, kun painike vapautetaan. Painonapin toinen pää on kytketty maahan ja toinen pää tapiin PA1 ja 10 k: n ylösvetovastus on myös kytketty 3,3 V: n Blue Pill -levyyn.
Ohjelman luominen ja polttaminen STM32: een Keil uVisionin ja ST-Linkin avulla
Vaihe 1: - Asenna ensin kaikki ST-LINK V2 -laiteajurit, ohjelmistotyökalut STM32Cube MX & Keil uVision ja asenna tarvittavat paketit STM32F103C8: lle.
Vaihe 2: - Toinen vaihe on avoin >> STM32Cube MX
Vaihe 3: - Napsauta sitten Uusi projekti
Vaihe 4: - Tämän jälkeen hae ja valitse mikrokontrolleri STM32F103C8
Vaihe 5: - Nyt näkyviin tulee STM32F103C8 : n pin-out-luonnos, tässä voimme asettaa pin-kokoonpanot. Voimme myös valita nastamme oheislaitteet-osiosta projektimme mukaan.
Vaihe 6: - Voit myös napsauttaa nastaa suoraan ja näkyviin tulee luettelo. Valitse nyt vaadittu tappi-kokoonpano.
Vaihe 7: - Projektissamme olemme valinneet PA1: n GPIO INPUT: ksi, PC13: n GPIO OUTPUT: ksi ja SYS-virheenkorjauksen sarjajohtimeksi , tässä vain yhdistämme ST-LINK SWCLK & SWDIO -nastat. Valitut ja määritetyt nastat näkyvät vihreällä. Voit huomata, että alla olevassa kuvassa.
Vaihe 8: - Seuraavaksi Asetukset- välilehdessä, valitse GPIO asettaa GPIO-nastamääritykset valitsemillemme nastoille.
Vaihe 9: - Seuraavaksi tässä pin-määrityskentässä voimme määrittää käyttäjän tunnisteen käyttämillemme nastoille, eli käyttäjän määrittelemille pin-nimille.
Vaihe 10: - Napsauta sen jälkeen Projekti >> Luo koodi .
Vaihe 11: - Nyt projektiasetusten valintaikkuna tulee näkyviin. Valitse tässä ruudussa projektisi nimi ja sijainti ja valitse kehitysympäristö. Käytämme Keiliä, joten valitse MDE-ARMv5 IDE: ksi.
Vaihe 12: - Next alle Code Generator -välilehteä, valitse Kopioi vain tarvittava kirjastotiedostot ja valitse sitten OK.
Vaihe 13: - Nyt koodin luontivalintaikkuna tulee näkyviin. Valitse Avaa projekti avataksesi projektin automaattisesti luoman koodin Keil uvsionissa.
Vaihe 14: - Nyt avautuu Keil uVision -työkalu luodulla koodilla STM32CubeMx: ssä samalla projektinimellä, tarvittavalla kirjastolla ja koodeilla, jotka on määritetty valitsemillemme nastoille.
Vaihe 15: - Nyt meidän on vain sisällytettävä logiikka jonkin toiminnon suorittamiseksi lähtö-LEDissä (nasta PC13), kun painiketta painetaan ja vapautetaan GPIO-tulossa (nasta PA1). Joten valitse main.c-ohjelmamme sisällyttääksesi joitain koodeja.
Vaihe 16: - Nyt lisätä koodin while (1) silmukka, katso alla oleva kuva, jossa olen korostanut, että osassa koodin suorittamiseen jatkuvasti.
kun (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => DETECTS-painiketta painetaan {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Tuloksen nostamiseksi korkealle, kun painiketta painetaand} muu {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Tehostaa äänenvoimakkuutta, kun painiketta painetaan}}
Vaihe 17: - Kun olet muokannut koodia, napsauta Asetukset- kuvaketta virheenkorjaus-välilehdessä ja valitse ST-LINK Debugger
Napsauta myös Asetukset- painiketta ja valitse sitten Flash-lataus- välilehden Nollaa ja suorita -valintaruutu ja napsauta OK.
Vaihe 18: - Napsauta uudelleen- kuvaketta rakentaaksesi kaikki kohdetiedostot uudelleen.
Vaihe 19: - Nyt voit liittää ST-LINKin tietokoneeseen piiriliitännät valmiina ja napsauttaa LATAA-kuvaketta tai painamalla F8 vilkkua STM32F103C8: lla luomallasi ja muokkaamallasi koodilla.
Vaihe 20: - Huomaat vilkkuvan merkinnän keil uVision -ikkunan alaosassa.
Keil-ohjelmoidun STM32-kortin lähtö
Kun painamme painonappia, LED syttyy ja kun vapautamme sen, LED sammuu.
Ohjelmoida
Alla on esitetty pääosa, jonka olemme lisänneet luotuun ohjelmaan. Tämä alla oleva koodi on sisällytettävä STM32CubeMX: n luomaan main.c- ohjelman (1 ) -ohjelmaan. Voit palata vaiheeseen 15 - vaihe 17 oppiaksesi, kuinka se tulisi lisätä main.c- ohjelmaan.
kun (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => DETECTS-painiketta painetaan {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Tuloksen nostamiseksi korkealle, kun painiketta painetaand} muu {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Tehostaa äänenvoimakkuutta, kun painiketta painetaan}}
Projektin luomisen ja lataamisen täydellinen prosessi STM32-levylle selitetään myös lopussa olevassa videossa. Myös main.c-tiedoston täydellinen koodi on annettu alla, mukaan lukien yllä annettu koodi.
Lisäksi löydät täydellisen STM32-projektisarjamme täältä.