- Vaadittujen Nucleo64-levyjen kehitysalustojen valitseminen ja lataaminen
- Piirikaavio ja laitteiston asetukset
- STM32CubeMX for STM32 Nucleo64 -kortit -alustan käytön aloittaminen
- STM32 Nucleo64 -kortin ohjelmointi TrueSTUDIO-sovelluksella
- STM32 Nucleo64 -ohjelma ohjaa LEDiä painikkeella
- Virheenkorjaus ja koodin lataaminen STM32 Necleo64 -kehityslevyyn TrueSTUDIO-sovelluksella
Monien meistä pitäisi tuntea suosittuja mikrokontrollereita ja kehityskortteja, kuten Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 jne. Itse asiassa useimmille ihmisille Arduino olisi ollut heidän ensimmäinen kehityskortti, mutta kun kaivamme syvälle ja aloitamme ammattimaiset mallit, ymmärrämme pian Arduinon rajoitukset (kuten kustannukset, monipuolisuus, vakaus, nopeus jne.) ja ymmärrämme tarpeen siirtyä natiivemmalle mikrokontrollerialustalle, kuten PIC, STM, Renesas jne.
Olemme jo käsittäneet sarjan PIC-mikrokontrollerioppaita, jotka opastavat aloittelijoita PIC-mikrokontrollerien oppimiseksi. Vastaavasti tästä artikkelista alkaen suunnittelemme myös sarjan STM32 Nucleo64 -kehityslautakunnan oppaita, jotka voivat auttaa aloittelijoita oppimaan ja kehittymään STM32-alustan avulla. Nucleo64-kehityskortit ovat edullisia ja helppokäyttöisiä alustoja sekä ammattikehittäjille että harrastajille. Jos olet täysin uusi STM32 Nucleo64 -kehityslevyissä, tutustu tähän Nucleo64 Review -videoon, jotta ymmärrät tämän levyn perusteet, ennen kuin jatkat. Video osoittaa myös, kuinka STM32 voidaan ohjelmoida ARM Mbed Platform -sovelluksella mutta tässä opetusohjelmassa käytämme toista ST Microelectronicsin vapaasti käytettävää alustaa nimeltä TrueSTUDIO.
Huomaa: STM32 Nucleo64 -kehityslevyistä on monia versioita, tässä opetusohjelmassa käytetty tietty levy on NUCLEO-F030R8. Olemme valinneet tämän levyn pääasiassa sen alhaisen hinnan vuoksi. Jopa, jos sinulla on eri versio, useimmat oppaassa käsitellyt asiat riittävät aloittamiseen.
Vaadittujen Nucleo64-levyjen kehitysalustojen valitseminen ja lataaminen
Minkä tahansa mikro-ohjaimen käytön aloittaminen vaatii IDE-ohjelmoinnin, kuten meillä on Arduino IDE Arduino-levyille, Atmel Studio AVR-mikrokontrollerille, MP Lab PIC: lle jne. Joten tässä tarvitaan myös IDE STM32 Nucleo64 -levyillemme ohjelmoinnin ja virheenkorjauksen suorittamiseksi. STM32-perhe koostuu 32-bittisistä mikrokontrollereista, jotka tukevat seuraavia IDE: itä ja työkaluketjuja:
- IAR Embedded Workbench® for ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- STM32-järjestelmän työpöytä
Tässä opetusohjelmissamme TrueSTUDIOa käytetään koodin kirjoittamiseen, kääntämiseen ja virheenkorjaukseen, koska se on ilmainen ladata ja käyttää myös kaupallisissa projekteissa ilman lisenssivaatimuksia. Sitten STM32CubeMX: ää käytetään oheisohjaimien luomiseen STM32-levyille ohjelmoinnin helpottamiseksi. Ladataksemme ohjelmamme (hex-tiedosto) kehityskortillemme ihmiset yleensä käyttävät STM32 ST-LINK Utility -työkalua, mutta käytämme sen sijaan itse TrueSTUDIOa. TrueSTUDIOlla on virheenkorjaustila, jonka avulla ohjelmoijat voivat ladata heksatiedoston suoraan STM32-kortille. Sekä TrueSTUIO että STM32CubeMX on helppo ladata, seuraa vain alla olevaa linkkiä, rekisteröidy ja lataa asetukset. Asenna ne sitten kannettavaan tietokoneeseen.
- Lataa STM32Cube MX
- Lataa TrueSTUDIO
Piirikaavio ja laitteiston asetukset
Ennen kuin jatkat ohjelmisto-osan ja koodauksen kanssa, valmistellaan levytämme tähän projektiin. Kuten aiemmin tässä artikkelissa mainittiin, aiomme ohjata LEDiä painikkeella. Jos olet nähnyt yllä linkitetyn videon, sinun pitäisi jo tietää, että STM32-kehityskortillasi on molemmilla puolilla kaksi sarjaa liitintappeja, nimeltään ST Morpho-nastat. Olemme liittäneet näihin nastoihin painikkeen ja LEDin alla olevan piirikaavion mukaisesti.
Piiriliitännät ovat helppoja tässä projektissa, meidän on kytkettävä LED PORTAn PA5: een ja kytkin PORTC: n PC13: een suhteessa GND: hen. Kun liitännät oli tehty, testiasennukseni näytti tältä.
Vaihtoehtoisesti voimme käyttää myös sisäänrakennettua LEDiä ja painonappia taululla. Nämä sisäänrakennetut LEDit ja painike kytketään myös samaan tapiin kuin piirikaaviossa on esitetty. Olemme lisänneet ulkoisia komponentteja vain harjoittelua varten. Alla oleva STM32-kehitystoimikunnan pin-kaavio on kätevä tietää, missä kukin morpho- nasta on kytketty laivaan.
STM32CubeMX for STM32 Nucleo64 -kortit -alustan käytön aloittaminen
Vaihe 1: Käynnistä asennuksen jälkeen STM32CubeMX ja valitse sitten pääsykortin valitsin valitaksesi STM32-kortin.
Vaihe 2: Etsi nyt taulusta STM32-taulutiedon mukaan, kuten NUCLEO-F030R8, ja napsauta kuvassa näkyvää taulua. Jos sinulla on eri lauta, etsi sen nimeä. Ohjelmisto tukee kaikkia ST Microelectronicsin STM32-kehityskortteja.
Vaihe 3: Napsauta nyt kyllä, kuten alla olevassa kuvassa näkyy, alustaa kaikki oheislaitteet oletusasetuksiinsa. Voimme myöhemmin muuttaa tarvittavat projektimme mukaan.
Kun olet napsauttanut Kyllä, näyttö muistuttaa alla olevaa kuvaa ja vihreää väriä, mikä osoittaa, että ne ovat oletusarvoisesti käynnistettyjä.
Vaihe 4: Nyt käyttäjät voivat valita haluamasi asetuksen luokista. Tässä tässä opetusohjelmassa aiomme vaihtaa LEDin painikkeella. Joten meidän on tehtävä LED-tappi lähtöön ja kytkin tappi INPUT.
Voit valita minkä tahansa nastan, mutta valitsen PA5: n ja vaihdan sen tilaksi GPIO_Output, jotta se toimisi lähtönastana alla olevan kuvan mukaisesti.
Vastaavasti valitsen PC13: n GPIO_Input-toiminnoksi, jotta voin lukea painikkeeni tilan.
Vaihtoehtoisesti voimme myös konfiguroida nastat pinout- ja kokoonpano-välilehdeltä, kuten alla on esitetty.
Vaihe 5: Seuraavassa vaiheessa käyttäjä voi asettaa halutun taajuuden mikro-ohjaimelle ja nastoille ulkoisen ja sisäisen oskillaattorin mukaan. Oletuksena valitaan sisäinen 8 MHz: n kideoskillaattori, ja PLL: n avulla tämä 8 muunnetaan 48 MHz: ksi. STM32-kortti tai mikro-ohjain ja nastat toimivat oletusarvoisesti 48 MHz: n taajuudella.
Vaihe 6: Siirry nyt projektipäällikköön ja anna projektille, projektin sijainnille nimi ja valitse työkaluketju tai IDE. Täällä käytämme TrueSTUDIOa, joten olen valinnut saman kuin alla.
Vaihe 7: Napsauta nyt Luo koodimerkki punaisella ympyrällä alla olevassa kuvassa.
Vaihe 8: Nyt näet ponnahdusikkunan annetuksi ja napsauta sitten avointa projektia. Varmista kuitenkin, että olet asentanut TrueSTUDIO-ohjelman ennen tätä vaihetta.
STM32 Nucleo64 -kortin ohjelmointi TrueSTUDIO-sovelluksella
Nyt koodisi tai projekti avautuu TrueSTUDIO-sovelluksessa automaattisesti, jos TrueSTUDIO pyytää työtilan sijaintia, anna sitten työtilan sijainti tai siirry oletussijaintiin.
Käyttäjä näkee alla olevan ruudun ja napsauttaa sitten punaisella kulmamerkkiä.
Ja nyt voimme nähdä koodin TreuSTUDIO IDE: ssä. Vasemmalla puolella 'src' -kansiossa näemme muut ohjelmatiedostot (.c-laajennuksella), jotka on jo luotu meille STM32Cube-ohjelmasta. Meidän on vain ohjelmoitava main.c-tiedosto. Jopa main.c-tiedostossa meillä on jo muutamia asioita, jotka CubeMX on asettanut meille, meidän on vain muokattava sitä ohjelmamme mukaan. Main.c-tiedoston sisällä oleva täydellinen koodi on tämän sivun alaosassa.
STM32 Nucleo64 -ohjelma ohjaa LEDiä painikkeella
Koska kaikki vaaditut ohjaimet ja koodit luodaan STM32CubeMX: llä, meidän on määritettävä vain LED-tappi lähdöksi ja painike Tuloksi. Ohjaus ledien ohjaamiseksi painikkeella tulisi kirjoittaa main.c-tiedostoon. Koko ohjelma löytyy tämän sivun alaosasta. Selitys siitä on seuraava
Meillä on vain kirjoitettu koodi LEDin vaihtamiseksi painikkeella. Tämän saavuttamiseksi määritämme ensin tapit LEDille ja painikkeille. Tässä olemme määrittäneet LEDin PORTA-nastan 5 numeroon
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
Ja määritä kytkin PORTC: n nastanumeroon 13.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Sitten päätoiminnossa olemme alustaneet kaikki käytetyt oheislaitteet.
/ * Alusta kaikki määritetyt oheislaitteet * / MX_GPIO_Init (); MX_USART2_Init ();
Lue sitten painike if-lausekkeella ja jos löytyy painike (LOW), LED vaihtaa tilaansa.
Vaikka (1) {/ * KÄYTTÄJÄKOODI LOPETTAVAT KUN NÄIN * / Jos (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * KÄYTTÄJÄKOODI ALKAA 3 * /}
Tässä HAL_GPIO_ReadPin (SW_PORT, SW_PIN) -funktiossa on kaksi argumenttia, yksi on PORT ja toinen on tappi, johon kytkin on kytketty, ja tämä tappi on määritetty INPUT: ksi samalla, kun oheislaitetta konfiguroidaan STM32CubeMX: ssä.
Virheenkorjaus ja koodin lataaminen STM32 Necleo64 -kehityslevyyn TrueSTUDIO-sovelluksella
Liitä nyt kortti tietokoneeseen ohjelmointikaapelilla. Kun olet liittänyt sen, piirilevylle tarvittava ohjain on ladattava automaattisesti. Voit tarkistaa tämän laitehallinnalla.
Sitten käännä ohjelma ja siirry virheenkorjaustilaan painamalla alla olevassa kuvassa punaisella ympyrällä merkittyä virheenkorjauskuvaketta.
Virheenkorjaustilassa koodi ladataan automaattisesti. Nyt meidän on suoritettava koodi painamalla 'Jatka' tai F8 (merkitty punaisella piirillä alla olevassa kuvassa).
Nyt voimme testata LEDien hallintaa painamalla painiketta. Koodin mukaan LEDin tulisi muuttaa tilaa aina, kun painat painiketta. Koko työ löytyy myös tämän sivun alaosassa olevasta linkitetystä videosta.
Testauksen jälkeen voimme myös lopettaa ohjelman painamalla lopetuskuvaketta, joka on merkitty punaisella ympyrällä alla olevassa kuvassa.