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
![STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx): 5 koraka STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx): 5 koraka](https://i.howwhatproduce.com/images/002/image-4967-55-j.webp)
Video: STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx): 5 koraka
![Video: STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx): 5 koraka Video: STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx): 5 koraka](https://i.ytimg.com/vi/uib4Zbdr-1A/hqdefault.jpg)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
![STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx) STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx)](https://i.howwhatproduce.com/images/002/image-4967-56-j.webp)
![STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx) STM32F4 Discovery Board i Python USART komunikacija (STM32CubeMx)](https://i.howwhatproduce.com/images/002/image-4967-57-j.webp)
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: 3 koraka Bežična komunikacija SmartHome: ekstremne osnove MQTT -a: 3 koraka](https://i.howwhatproduce.com/images/002/image-5383-j.webp)
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: 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: 15 koraka](https://i.howwhatproduce.com/images/001/image-540-15-j.webp)
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: 5 koraka PIC MCU i Python serijska komunikacija: 5 koraka](https://i.howwhatproduce.com/images/002/image-5925-13-j.webp)
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 tastature: 4 koraka Arduino i Python serijska komunikacija - prikaz tastature: 4 koraka](https://i.howwhatproduce.com/images/003/image-6993-8-j.webp)
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: 6 koraka ESP8266 i Python komunikacija za Noobs: 6 koraka](https://i.howwhatproduce.com/images/004/image-10322-36-j.webp)
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