Sadržaj:
- Korak 1: Softverski i hardverski zahtjevi
- Korak 2: Konfiguracija STM32CubeMX
- Korak 3: Razvoj softvera Keil
- Korak 4: Razvoj softvera Python
- Korak 5: Zaključak
Video: STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx): 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Bok! U ovom ćemo vodiču pokušati uspostaviti USART komunikaciju između STM32F4 ARM MCU -a i Pythona (može se zamijeniti bilo kojim drugim jezikom). Pa krenimo:)
Korak 1: Softverski i hardverski zahtjevi
Što se tiče hardvera potrebno vam je:
- STM32F4 ploča za otkrivanje (ili bilo koja druga ploča STM32)
- USB u TTL pretvarač
Što se tiče softvera:
- STM32CubeMX
- Keil uVision5
- Python s instaliranom serijskom knjižnicom
Korak 2: Konfiguracija STM32CubeMX
Prvo shvatimo što želimo učiniti. Želimo prenijeti podatke na ploču s Pythona preko USART -a i provjeriti imamo li točne podatke i uključiti LED. Dakle, moramo omogućiti USART i Led.
-
Omogućite USART2 na kartici Povezivanje.
- Promijenite način rada u Asynchoronous
- Brzina prijenosa do 9600 bita/s
- Dužina riječi do 8 bitova bez pariteta
- Bez pariteta
- Iz postavki DMA -a dodajte USART2_RX u specifičnom načinu rada
- Iz NVIC postavki omogućite globalni prekid USART2
- Omogućite LED klikom na PD12
Zatim generirajte kôd:)
Korak 3: Razvoj softvera Keil
#uključi
#uključi
Te će knjižnice biti potrebne u nizovnim operacijama i za definiranje logičke varijable.
/ *KORISNIČKI KOD POČINJE 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * KORISNIČKI KOD KRAJ 2 */
Ovdje je primljeno UART s DMA -om.
/ *KORISNIČKI KOD POČINJE 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Spriječi upozorenje kompilacije neiskorištenih argumenata */UNUSED (huart); / * NAPOMENA: Ova funkcija se ne smije mijenjati, kada je potreban povratni poziv, HAL_UART_RxCpltCallback bi se mogao implementirati u korisničku datoteku */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; indeks _ ++; } else {indeks_ = 0; završeno = 1; } // HAL_UART_Prenesite (& huart2, data_buffer, 1, 10); } / * KORISNIČKI KOD KRAJ 4 * /
Ovo je ISR koji se aktivira kada dobijemo jedan bajt znaka. Tako. dobivamo taj bajt i zapisujemo ga u data_full koji sadrži potpune primljene podatke dok ne dobijemo '\ n'. Kad dobijemo '\ n' napravimo gotovu zastavicu 1 i u while petlji:
while (1) { / * KORISNIČKI KOD KRAJ DOK * / if (gotov) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); završeno = 0; } else {_NOP (); } / * KORISNIČKI KOD POČINJE 3 * /}
Ako je gotova zastavica VISOKA, uspoređujemo sadržaj potpunih primljenih podataka i podataka koje želimo, a ako su jednaki, mijenjamo LED. Nakon toga brišemo oznaku gotova i čekamo nove podatke te također brišemo polje data_full kako se ne bi prepisali u polje.
Korak 4: Razvoj softvera Python
Dakle, ovdje želimo poslati naš broj s '/n' na kraju, jer će ga softver Keil morati vidjeti da bi znao kraj.
serijski uvoz
ser = serial. Serial ('COM17') #provjerite taj port na vašem uređaju iz Upravitelja uređaja
ser.write (b'24 / n ')
Trebali biste vidjeti da se LED uključuje svaki put kada pošaljete '24 / n '. Ako pošaljete bilo što drugo, to ne bi trebalo utjecati.
Korak 5: Zaključak
Došli smo do kraja vodiča. ako imate bilo kakvih problema ili pitanja, ne ustručavajte se pitati. Pokušat ću pomoći koliko god mogu. Hvala vam puno:)
Preporučeni:
Bežična komunikacija SmartHome: ekstremne osnove MQTT -a: 3 koraka
Bežična komunikacija SmartHome: ekstremne osnove MQTT -a: Osnove MQTT -a: ** Radit ću seriju kućne automatizacije, proći ću korake koje sam poduzeo kako bih naučio sve što sam radio u budućnosti. Ovaj Instructable temelj je o tome kako postaviti MQTT za upotrebu u mojim budućim Instructables. Međutim
LoRa bežična komunikacija od 3 do 8 km s niskim troškovima E32 (sx1278/sx1276) uređaj za Arduino, Esp8266 ili Esp32: 15 koraka
LoRa bežična komunikacija od 3 km do 8 km s niskim troškovima E32 (sx1278/sx1276) Uređaj za Arduino, Esp8266 ili Esp32: Stvaram knjižnicu za upravljanje EBYTE E32 na temelju Semtech serije LoRa uređaja, vrlo snažan, jednostavan i jeftin uređaj. Možete pronaći Ovdje je verzija od 3 km, verzija od 8 kilometara Ovdje mogu raditi na udaljenostima od 3000 do 8000 metara, a imaju mnogo mogućnosti i
PIC MCU i Python serijska komunikacija: 5 koraka
PIC MCU i Python serijska komunikacija: Zdravo, dečki! U ovom projektu pokušat ću objasniti svoje eksperimente na PIC MCU i Python serijskoj komunikaciji. Preko interneta postoji mnogo vodiča i video zapisa o tome kako komunicirati s PIC MCU -om preko virtualnog terminala što je vrlo korisno. Howev
Arduino i Python serijska komunikacija - prikaz tipkovnice: 4 koraka
Arduino i Python serijska komunikacija - prikaz tipkovnice: Ovaj je projekt napravljen za korisnike Mac računara, ali se može implementirati i za Linux i Windows, jedini korak koji bi trebao biti drugačiji je instalacija
ESP8266 i Python komunikacija za Noobs: 6 koraka
ESP8266 i Python komunikacija za Noobs: Ovaj vodič omogućuje vam da dobijete sve podatke iz ESP8266 i upravljate njime preko pythona bez AT naredbi. Za početnike je većina vodiča o korištenju ESP8266 teška jer žele da bljeskate “AT COMMANDS”U čip, što je: Nepotreban otpad