Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Zdravo! 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 sa instaliranom serijskom bibliotekom
Korak 2: Konfiguracija STM32CubeMX
Prvo da shvatimo šta želimo da radimo. Želimo prenijeti podatke na ploču s Pythona preko USART -a i provjeriti imamo li ispravne 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
- Nema pariteta
- Iz DMA postavki dodajte USART2_RX u specifičnom načinu rada
- Iz NVIC postavki omogućite USART2 globalni prekid
- Omogućite LED klikom na PD12
Zatim generirajte kod:)
Korak 3: Razvoj softvera Keil
#include
#include
Ove biblioteke bit će 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 UART prijem započeo 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 {index_ = 0; završeno = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * KORISNIČKI KOD KRAJ 4 * /
Ovo je ISR koji se aktivira kada dobijemo jedan bajt znaka. Dakle. dobivamo taj bajt i upisujemo ga u data_full koji sadrži potpune primljene podatke dok ne dobijemo '\ n'. Kad dobijemo '\ n' napravimo gotovu zastavicu 1 i u petlji while:
while (1) { / * KORISNIČKI KOD KRAJ DOK * / if (završeno) {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, a također brišemo polje data_full kako se ne bi prepisali u niz.
Korak 4: Razvoj softvera Python
Dakle, ovdje želimo poslati naš broj sa '/n' na kraju, jer će softver Keil to morati vidjeti da bi znao kraj.
uvoz serijske
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šaću da pomognem koliko mogu. Hvala vam puno:)
Preporučuje se:
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 je osnova za postavljanje MQTT -a za upotrebu u mojim budućim Instructables -ima. 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 do 8 km s niskim troškovima E32 (sx1278/sx1276) Uređaj za Arduino, Esp8266 ili Esp32: Stvaram biblioteku 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 funkcija i
PIC MCU i Python serijska komunikacija: 5 koraka
PIC MCU i Python serijska komunikacija: Zdravo, momci! 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 tastature: 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č vam omogućuje da dobijete sve podatke iz ESP8266 i kontrolirate ih preko pythona bez AT naredbi. Za početnike, većina vodiča o korištenju ESP8266 je teška, jer žele da bljeskate “AT COMMANDS”U čip, što je: Nepotreban otpad