Cuprins:
- Pasul 1: Cerințe software și hardware
- Pasul 2: Configurare STM32CubeMX
- Pasul 3: Dezvoltarea software-ului Keil
- Pasul 4: Dezvoltare software Python
- Pasul 5: Concluzie
Video: STM32F4 Discovery Board și Python USART Communication (STM32CubeMx): 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Salut! În acest tutorial vom încerca să stabilim comunicarea USART între STM32F4 ARM MCU și Python (poate fi înlocuită cu orice altă limbă). Deci sa începem:)
Pasul 1: Cerințe software și hardware
În ceea ce privește hardware-ul, aveți nevoie:
- STM32F4 Discovery Board (sau orice altă placă STM32)
- Convertor USB la TTL
În ceea ce privește software-ul:
- STM32CubeMX
- Keil uVision5
- Python cu bibliotecă serială instalată
Pasul 2: Configurare STM32CubeMX
Mai întâi să înțelegem ce vrem să facem. Vrem să transmitem date la bord de la Python prin USART și să verificăm dacă avem date corecte și comutăm led. Deci, trebuie să activăm USART și Led.
-
Activați USART2 din fila Conectivitate.
- Schimbați modul în Asincron
- Rată de transmisie la 9600 biți / s
- Lungimea cuvântului la 8 biți fără paritate
- Niciun bit de paritate
- Din setările DMA adăugați USART2_RX în modul cicular
- Din setările NVIC activați întreruperea globală USART2
- Activați LED-ul făcând clic pe PD12
Apoi generează cod:)
Pasul 3: Dezvoltarea software-ului Keil
#include
#include
Aceste biblioteci vor fi necesare în operațiile de șir și pentru a defini variabila booleană.
/ * COD DE UTILIZATOR ÎNCEPE 2 * / HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * CODUL UTILIZATORULUI 2 * /
Aici a început primirea UART cu DMA.
/ * COD DE UTILIZATOR ÎNCEPE 4 * / void HAL_UART_RxCpltCallback (UART_HandleTypeDef * huart) {/ * Prevenirea avertismentului de compilare a argumentelor neutilizate * / UNUSED (huart); / * NOTĂ: Această funcție nu trebuie modificată, atunci când este nevoie de apel invers, HAL_UART_RxCpltCallback ar putea fi implementat în fișierul utilizatorului * / if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; index _ ++; } else {index_ = 0; terminat = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * CODUL UTILIZATORULUI 4 * /
Acesta este ISR care este activat când obținem un octet de caracter. Asa de. obținem acel octet și îl scriem în data_full care conține datele complete primite până obținem „\ n”. Când obținem „\ n” facem steagul terminat 1 și în bucla while:
while (1) {/ * CODUL UTILIZATORULUI ÎNCHEIE CÂND * / if (terminat) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); terminat = 0; } else {_NOP (); } / * COD DE UTILIZATOR ÎNCEPE 3 * /}
Dacă steagul terminat este HIGH, comparăm conținutul datelor complete primite și a datelor pe care le dorim și dacă sunt egale, comutăm ledul. După aceea, ștergem semnalul terminat și așteptăm date noi și, de asemenea, ștergem matricea data_full pentru a nu suprascrie matricea.
Pasul 4: Dezvoltare software Python
Deci, aici vrem să trimitem numărul nostru cu „/ n” la final, deoarece software-ul Keil va trebui să îl vadă pentru a cunoaște sfârșitul.
import serial
ser = serial. Serial ('COM17') #bifați acel port de pe dispozitiv din Manager dispozitive
ser.write (b'24 / n ')
Ar trebui să vedeți că LED-ul comută de fiecare dată când trimiteți „24 / n”. Dacă trimiteți altceva, nu ar trebui să îl afecteze.
Pasul 5: Concluzie
Am ajuns la sfârșitul tutorialului. dacă aveți vreo problemă sau întrebare, vă rugăm să nu ezitați să întrebați. Voi încerca să ajut cât pot. Mulțumesc foarte mult:)
Recomandat:
Control servomotor cu STM32F4 ARM MCU: 4 pași
Control servomotor cu STM32F4 ARM MCU: Bună ziua, prieteni :) Deci, în acest proiect vom controla un servomotor cu STM32F4 ARM MCU. În cazul meu, voi folosi placa de descoperire, dar dacă înțelegeți esența problemei, atunci o puteți aplica pentru fiecare MCU. Asa de. să începem:)
PIC MCU și Python Serial Communication: 5 pași
PIC MCU și Python Serial Communication: Bună ziua, băieți! În acest proiect voi încerca să explic experiențele mele pe PIC MCU și comunicare serial Python. Pe internet, există multe tutoriale și videoclipuri despre cum să comunicați cu PIC MCU prin terminal virtual, ceea ce este foarte util. Howev
ESP8266 și Python Communication pentru Noobs: 6 pași
Comunicare ESP8266 și Python pentru Noobs: Acest ghid vă permite să obțineți orice date de la ESP8266 și să le controlați pe Python fără comenzi AT. Pentru începători, majoritatea ghidurilor despre utilizarea ESP8266 sunt dificile, deoarece vor să blocați „AT COMMANDS”În cip, care este: Deșeuri inutile
HC-08 Bluetooth UART Communication Module V2.4 Ghidul utilizatorului: 9 pași
HC-08 Bluetooth UART Communication Module V2.4 Ghidul utilizatorului: Introducere produs Modem Bluetooth - Modul minim de trecere HC08 este un modul de transmisie de date de nouă generație bazat pe protocolul Bluetooth Specification V4.0 BLE. Banda de frecvență fără fir este de 2,4 GHz ISM cu metoda de modulare GFSK. Th
Controlul vitezei motorului DC folosind algoritmul PID (STM32F4): 8 pași (cu imagini)
Controlul vitezei motorului de curent continuu folosind algoritmul PID (STM32F4): salut tuturor, asta este tahir ul haq cu un alt proiect. De data aceasta este STM32F407 ca MC. Acesta este un proiect de sfârșit de semestru. Sper că vă place. Necesită o mulțime de concepte și teorie, așa că mergem mai întâi în ea. Odată cu apariția computerelor și a