Sisällysluettelo:
- Vaihe 1: Ohjelmisto- ja laitteistovaatimukset
- Vaihe 2: STM32CubeMX -määritykset
- Vaihe 3: Keil -ohjelmistokehitys
- Vaihe 4: Python -ohjelmistokehitys
- Vaihe 5: Johtopäätös
Video: STM32F4 Discovery Board ja Python USART Communication (STM32CubeMx): 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Hei! Tässä opetusohjelmassa yritämme luoda USART -viestinnän STM32F4 ARM MCU: n ja Pythonin välillä (se voidaan korvata millä tahansa muulla kielellä). Joten aloitetaan:)
Vaihe 1: Ohjelmisto- ja laitteistovaatimukset
Laitteiston suhteen tarvitset:
- STM32F4 Discovery Board (tai mikä tahansa muu STM32 -kortti)
- USB -TTL -muunnin
Ohjelmiston osalta:
- STM32CubeMX
- Keil uVision 5
- Python ja sarjakirjasto asennettuna
Vaihe 2: STM32CubeMX -määritykset
Ensin ymmärrämme, mitä haluamme tehdä. Haluamme lähettää tiedot levylle Pythonista USARTin kautta ja tarkistaa, onko meillä oikeat tiedot ja vaihtokytkimet. Joten meidän on otettava käyttöön USART ja Led.
-
Ota USART2 käyttöön Yhteydet -välilehdeltä.
- Vaihda tilaksi Asynchoronous
- Siirtonopeus 9600 bittiä/s
- Sanan pituus 8 bittiin ilman pariteettia
- Ei pariteettia
- Lisää DMA -asetuksista USART2_RX cicular -tilassa
- Ota NVIC -asetuksista käyttöön USART2 -globaali keskeytys
- Ota LED käyttöön napsauttamalla PD12
Luo sitten koodi:)
Vaihe 3: Keil -ohjelmistokehitys
#sisältää
#sisältää
Näitä kirjastoja tarvitaan merkkijonotoiminnoissa ja boolen muuttujan määrittämisessä.
/ *KÄYTTÄJÄKOODI ALKAA 2 */ HAL_UART_Vastaanota_DMA (& huart2, (uint8_t *) data_buffer, 1); / * KÄYTTÄJÄKOODI END 2 */
Tässä UART -vastaanotto DMA: n kanssa alkoi.
/ *KÄYTTÄJÄKOODI ALKAA 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Estä käyttämättömien argumenttien kokoamisvaroitus */UNUSED (huart); / * HUOMAUTUS: Tätä toimintoa ei pitäisi muuttaa, kun takaisinsoittoa tarvitaan, HAL_UART_RxCpltCallback voidaan toteuttaa käyttäjätiedostossa */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; indeksi _ ++; } muu {indeksi_ = 0; valmis = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * KÄYTTÄJÄKOODIN LOPPU 4 * /
Tämä on ISR, joka aktivoituu, kun saamme yhden tavun merkin. Niin. saamme sen tavun ja kirjoitamme sen data_full -tiedostoon, joka sisältää kaikki vastaanotetut tiedot, kunnes saamme '\ n'. Kun saamme '\ n', teemme valmiin lipun 1 ja in -silmukan:
while (1) { / * USER CODE END WHILE * / jos (valmis) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); valmis = 0; } muu {_NOP (); } / * KÄYTTÄJÄKOODI ALKAA 3 * /}
Jos valmis lippu on KORKEA, vertaamme kaikkien vastaanotettujen tietojen ja haluamamme datan sisältöä ja jos ne ovat yhtä suuria, vaihdamme lediä. Sen jälkeen poistamme valmiin lipun ja odotamme uutta dataa sekä tyhjennämme myös data_full -taulukon, jotta emme korvaa sitä.
Vaihe 4: Python -ohjelmistokehitys
Joten tässä haluamme lähettää numeromme '/n' lopussa, koska Keil -ohjelmiston on nähtävä se tietääkseen lopun.
tuoda sarja
ser = serial. Serial ('COM17') #tarkista laitteen portti Laitehallinnasta
ser.write (b'24 / n ')
Sinun pitäisi nähdä, että LED -valo vaihtuu aina, kun lähetät '24 / n '. Jos lähetät jotain muuta, sen ei pitäisi vaikuttaa siihen.
Vaihe 5: Johtopäätös
Olemme tulleet opetusohjelman loppuun. jos sinulla on ongelmia tai kysymyksiä, älä epäröi kysyä. Yritän auttaa niin paljon kuin voin. Kiitos paljon:)
Suositeltava:
SmartHome Wireless Communication: MQTT: n äärimmäiset perusteet: 3 vaihetta
SmartHome Wireless Communication: MQTT: n äärimmäiset perusteet: MQTT Basics: ** Aion tehdä Home Automation -sarjan, käyn läpi vaiheet, jotka otin oppiakseni kaiken, mitä olen tehnyt tulevaisuudessa. Tämä Instructable on lähtökohta MQTT: n määrittämiselle käytettäväksi tulevissa Instructables -ohjelmissani. Kuitenkin
FreeRTOSin määrittäminen alusta alkaen STM32F407 Discovery Kit -sovelluksessa: 14 vaihetta
FreeRTOSin määrittäminen alusta alkaen STM32F407 Discovery Kit -sovelluksella: FreeRTOSin valitseminen reaaliaikaiseksi käyttöjärjestelmäksi upotetulle projektillesi on loistava valinta. FreeRTOS on todella ilmainen ja tarjoaa monia yksinkertaisia ja tehokkaita RTOS -ominaisuuksia. Mutta freeRTOSin asentaminen tyhjästä voi olla vaikeaa tai voin sanoa bi
Servomoottorin ohjaus STM32F4 ARM MCU: 4 vaihetta
Servomoottorin ohjaus STM32F4 ARM MCU: Hei taas ystävät :) Joten tässä projektissa ohjaamme servomoottoria STM32F4 ARM MCU: lla. Minun tapauksessani käytän etsintäkorttia, mutta jos ymmärrät ongelman ytimen, voit käyttää sitä jokaisessa MCU: ssa. Niin. aloitetaan:)
UCL -Embedded -Relay Communication Box: 5 vaihetta
UCL -Embedded -Relay Communication Box: Tämän projektin pääidea on ohjata kahden releen ja DHT11 -anturin sarjaa Blynk -sovelluksella WiFi -yhteydellä ja Nodmcu esp8266 -mikro -ohjaimella
DC -moottorin nopeuden säätö PID -algoritmin avulla (STM32F4): 8 vaihetta (kuvien kanssa)
Tasavirtamoottorin nopeuden säätö PID -algoritmin avulla (STM32F4): Hei kaikki, tämä on tahir ul haq toisen projektin kanssa. Tällä kertaa se on STM32F407 MC: nä. Tämä on lukukauden puolivälin projekti. Toivottavasti pidät siitä. Se vaatii paljon käsitteitä ja teoriaa, joten menemme siihen ensin. Tietokoneiden ja