Satura rādītājs:
- 1. darbība. Prasības programmatūrai un aparatūrai
- 2. darbība: STM32CubeMX konfigurācija
- 3. solis: Keil programmatūras izstrāde
- 4. solis: Python programmatūras izstrāde
- 5. darbība. Secinājums
Video: STM32F4 atklāšanas dēlis un Python USART komunikācija (STM32CubeMx): 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Sveiki! Šajā apmācībā mēs centīsimies izveidot USART komunikāciju starp STM32F4 ARM MCU un Python (to var aizstāt ar jebkuru citu valodu). Tātad, sāksim:)
1. darbība. Prasības programmatūrai un aparatūrai
Aparatūras ziņā jums ir nepieciešams:
- STM32F4 atklāšanas dēlis (vai jebkura cita STM32 tāfele)
- USB uz TTL pārveidotājs
Runājot par programmatūru:
- STM32CubeMX
- Keil uVision5
- Python ar instalētu sērijveida bibliotēku
2. darbība: STM32CubeMX konfigurācija
Vispirms sapratīsim, ko mēs vēlamies darīt. Mēs vēlamies pārsūtīt datus uz kuģa no Python, izmantojot USART, un pārbaudīt, vai mums ir pareizi dati un pārslēgšanas indikators. Tātad mums ir jāiespējo USART un Led.
-
Cilnē Savienojamība iespējojiet USART2.
- Mainiet režīmu uz asinhronu
- Pārsūtīšanas ātrums līdz 9600 bitiem/s
- Vārda garums līdz 8 bitiem bez paritātes
- Nav paritātes bitu
- No DMA iestatījumiem pievienojiet USART2_RX cikliskajā režīmā
- No NVIC iestatījumiem iespējojiet USART2 globālo pārtraukumu
- Iespējojiet LED, noklikšķinot uz PD12
Tad ģenerē kodu:)
3. solis: Keil programmatūras izstrāde
#iekļaut
#iekļaut
Šīs bibliotēkas būs nepieciešamas virkņu operācijās un Būla mainīgā definēšanai.
/ *LIETOTĀJA KODS SĀKAS 2 */ HAL_UART_Received_DMA (& huart2, (uint8_t *) data_buffer, 1); / * LIETOTĀJA KODS END 2 */
Šeit sākās UART saņemšana ar DMA.
/ *LIETOTĀJA KODS SĀKAS 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Novērst neizmantoto argumentu (-u) apkopošanas brīdinājumu */UNUSED (huart); / * PIEZĪME. Šo funkciju nevajadzētu mainīt, ja ir nepieciešama atzvanīšana, HAL_UART_RxCpltCallback var tikt ieviests lietotāja failā */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; indekss _ ++; } cits {indeks_ = 0; pabeigts = 1; } // HAL_UART_Pārraide (& huart2, data_buffer, 1, 10); } / * LIETOTĀJA KODA END 4 * /
Šī ir ISR, kas tiek aktivizēta, kad iegūstam vienu baitu rakstzīmes. Tātad. mēs iegūstam šo baitu un rakstām to uz data_full, kurā ir visi saņemtie dati, līdz iegūstam '\ n'. Kad iegūstam “\ n”, mēs izveidojam pabeigto karogu 1 un in loop:
kamēr (1) { / * LIETOTĀJA KODS BEIDZAS * / ja (pabeigts) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); pabeigts = 0; } cits {_NOP (); } / * LIETOTĀJA KODS SĀKAS 3 * /}
Ja pabeigtais karogs ir HIGH, mēs salīdzinām visu saņemto datu un vēlamo datu saturu, un, ja tie ir vienādi, mēs pārslēdzam vadību. Pēc tam mēs notīra gatavo karodziņu un gaidām jaunus datus, kā arī notīrām masīvu data_full, lai masīvs netiktu pārrakstīts.
4. solis: Python programmatūras izstrāde
Tātad, šeit mēs vēlamies nosūtīt savu numuru ar '/n' beigās, jo Keil programmatūrai tas būs jāredz, lai uzzinātu beigas.
importēt sēriju
ser = serial. Serial ('COM17') #Pārbaudiet ierīces portu no ierīces pārvaldnieka
ser.write (b'24 / n ')
Jums vajadzētu redzēt, ka gaismas diode pārslēdzas katru reizi, kad sūtāt “24 / n”. Ja sūtāt kaut ko citu, tam nevajadzētu to ietekmēt.
5. darbība. Secinājums
Esam nonākuši līdz apmācības beigām. ja jums ir kādas problēmas vai jautājumi, lūdzu, nevilcinieties jautāt. Es centīšos palīdzēt, cik vien varu. Liels paldies:)
Ieteicams:
MXY dēlis - zema budžeta XY ploteru zīmēšanas robotu dēlis: 8 soļi (ar attēliem)
MXY dēlis - zema budžeta XY ploteru zīmēšanas robotu dēlis: Mans mērķis bija izveidot mXY tāfeli tā, lai XY ploteru zīmēšanas mašīna būtu ar mazu budžetu. Tāpēc es izveidoju tāfeli, kas atvieglo tiem, kas vēlas izveidot šo projektu. Iepriekšējā projektā, izmantojot 2 gab. Nema17 soļu motorus, šī tāfele
FreeRTOS iestatīšana no nulles uz STM32F407 atklāšanas komplekta: 14 soļi
FreeRTOS iestatīšana no nulles uz STM32F407 atklāšanas komplekta: FreeRTOS kā reāllaika operētājsistēmas izvēle iegultajam projektam ir lieliska izvēle. FreeRTOS ir patiešām bezmaksas un piedāvā daudzas vienkāršas un efektīvas RTOS funkcijas. Bet freeRTOS iestatīšana no nulles varētu būt sarežģīta, vai es varu teikt, ka bi
Pamata mobilais tālrunis, izmantojot STM32F407 atklāšanas komplektu un GSM A6 moduli: 14 soļi (ar attēliem)
Pamata mobilais tālrunis, izmantojot STM32F407 atklāšanas komplektu un GSM A6 moduli: Vai esat kādreiz vēlējies izveidot foršu iegulto projektu ?. Ja jā, kā būtu izveidot vienu no populārākajiem un ikviena iecienītākajiem sīkrīkiem, ti, mobilo tālruni !!!. Šajā pamācībā es jums pastāstīšu, kā izveidot pamata mobilo tālruni, izmantojot STM
Visuino Izveidojiet ielaušanās atklāšanas sistēmu, izmantojot Arduino: 8 soļi
Visuino izveidojiet ielaušanās noteikšanas sistēmu, izmantojot Arduino: Šajā apmācībā mēs izmantosim XYC-WB-DC mikroviļņu radara kustības sensoru, kas savienots ar Arduino UNO un Visuino, lai noteiktu jebkādas kustības rādiusā ap 5 m, ieskaitot plānas sienas. Noskatieties demonstrācijas video
IOT balstīta meža ugunsgrēka atklāšanas sistēma: 8 soļi
IOT balstīta meža ugunsgrēka atklāšanas sistēma: ● Indijas mežu ugunsgrēki gadu desmitiem ir bijusi aktuāla problēma, un tas nāk tikai tad, ja notiek tādi lieli incidenti kā Uttarakhandā. priekš