
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48


Ողջու՜յն! Այս ձեռնարկում մենք կփորձենք հաստատել USART հաղորդակցություն STM32F4 ARM MCU- ի և Python- ի միջև (այն կարող է փոխարինվել ցանկացած այլ լեզվով): Այսպիսով, եկեք սկսենք:)
Քայլ 1: Softwareրագրային ապահովման և սարքավորման պահանջներ
Սարքավորման առումով ձեզ հարկավոր է.
- STM32F4 հայտնաբերման տախտակ (կամ ցանկացած այլ STM32 տախտակ)
- USB- ից TTL փոխարկիչ
Softwareրագրային ապահովման առումով.
- STM32CubeMX
- Keil uVision5
- Տեղադրված է սերիական գրադարանով Python
Քայլ 2: STM32CubeMX կազմաձևում
Նախ եկեք հասկանանք, թե ինչ ենք ուզում անել: Մենք ցանկանում ենք տվյալները փոխանցել Python- ից USART- ի միջոցով և ստուգել, արդյոք մենք ունենք ճիշտ տվյալներ և միացրել led- ը: Այսպիսով, մեզ անհրաժեշտ է միացնել USART- ը և Led- ը:
-
Միացնել USART2 միացման ներդիրից:
- Փոխեք ռեժիմը Ասինխորոն
- Baud փոխարժեքը 9600 բիթ/վրկ
- Բառի երկարությունը մինչև 8 բիթ ՝ առանց հավասարության
- Ոչ մի հավասարություն
- DMA- ի կարգավորումներից ավելացրեք USART2_RX- ը հատուկ ռեժիմում
- NVIC- ի կարգավորումներից միացրեք USART2 գլոբալ ընդհատումը
- Միացրեք LED- ը ՝ կտտացնելով PD12- ին
Հետո ստեղծեք կոդը:)
Քայլ 3. Keil ծրագրաշարի մշակում
#ներառում
#ներառում
Այս գրադարանները անհրաժեշտ կլինեն լարային գործողությունների և բուլյան փոփոխականի սահմանման համար:
/ *USER CODE BEGIN 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * ՕԳՏԱԳՈՐԻՉԻ ՎԵՐ END 2 *//
Այստեղ սկսվել է DART- ով UART- ի ստացումը:
/ *USER CODE BEGIN 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Կանխել չօգտագործված փաստարկների (ներ) կազմման նախազգուշացումը */Չօգտագործված (huart); / * ՈEՇԱԴՐՈԹՅՈՆ. Այս գործառույթը չպետք է փոփոխվի, երբ հետադարձ կապի կարիք կա, HAL_UART_RxCpltCallback- ը կարող է ներդրվել օգտվողի ֆայլում */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; ինդեքս _ ++; } այլ {index_ = 0; ավարտված = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * ՕԳՏԱԳՈՐԻՉԻ ՎԵՐ END 4 * /
Սա ISR- ն է, որն ակտիվանում է, երբ ստանում ենք մեկ բայթ բնույթ: Այսպիսով, մենք ստանում ենք այդ բայթը և գրում այն data_full- ին, որը պարունակում է ստացված ամբողջական տվյալները, մինչև չստանանք '\ n': Երբ ստանում ենք '\ n', պատրաստում ենք պատրաստի դրոշ 1 և while loop:
մինչդեռ (1) { / * ՕԳՏԱԳՈՐԱՆԻ ԿՈԴԸ ԱՎԱՐՏՈՄ Է * / եթե (ավարտված է) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); ավարտված = 0; } else {_NOP (); } / * Օգտվողի ծածկագիրը ՍԿՍՎԵԼ Է 3 * /}
Եթե ավարտված դրոշը ԲԱՐՁՐ Է, մենք համեմատում ենք մեր ստացած ամբողջական տվյալների և տվյալների պարունակությունը, և եթե դրանք հավասար են, մենք միացնում ենք led- ը: Դրանից հետո մենք մաքրում ենք ավարտված դրոշը և սպասում նոր տվյալների, ինչպես նաև մաքրում ենք data_full զանգվածը `զանգվածին չգրելու համար:
Քայլ 4: Python ծրագրաշարի մշակում
Այսպիսով, այստեղ մենք ուզում ենք ուղարկել մեր համարը '/n' վերջում, քանի որ Keil ծրագրակազմը պետք է տեսնի այն, որպեսզի իմանա վերջը:
ներմուծման սերիա
ser = serial. Սերիալ ('COM17') #սարքի կառավարիչից ստուգեք ձեր սարքի այդ նավահանգիստը
ser.write (b'24 / n ')
Դուք պետք է տեսնեք, որ LED- ը միանում է ամեն անգամ '24 / n' ուղարկելիս: Եթե այլ բան եք ուղարկում, դա չպետք է ազդի դրա վրա:
Քայլ 5: Եզրակացություն
Մենք հասել ենք ձեռնարկի ավարտին: եթե որևէ խնդիր կամ հարց ունեք, մի հապաղեք հարցնել: Ես կփորձեմ օգնել, որքան կարող եմ: Շատ շնորհակալություն:)
Խորհուրդ ենք տալիս:
Arduino to Node Communication: 4 քայլ

Arduino to Node Communication. Այս հրահանգը զուտ միայն շատ հիմնական ցուցադրման համար է, թե ինչպես ուղարկել և ստանալ տվյալներ UART- ի միջոցով (սերիական) երկու Arduino համատեղելի տախտակների միջև:
Servo Motor Control STM32F4 ARM MCU- ով ՝ 4 քայլ

Servo Motor Control With STM32F4 ARM MCU. Բարև կրկին ընկերներ :) Այսպիսով, այս նախագծում մենք վերահսկելու ենք սերվո շարժիչը STM32F4 ARM MCU- ով: Իմ դեպքում ես կօգտագործեմ հայտնագործման տախտակ, բայց եթե դուք ընկալեք խնդրի էությունը, ապա այն կարող եք կիրառել յուրաքանչյուր MCU- ի համար: Այսպիսով, Եկեք սկսենք:)
ESP8266 և Python Communication Noobs- ի համար. 6 քայլ

ESP8266 և Python Communication For Noobs. Այս ուղեցույցը թույլ է տալիս ստանալ ցանկացած տվյալ ESP8266- ից և վերահսկել այն Python- ի վրա առանց AT հրամանների: Սկսնակների համար ESP8266- ի օգտագործման վերաբերյալ ուղեցույցների մեծ մասը դժվար է, քանի որ նրանք ցանկանում են, որ դուք թարթեք «ՀՐԱՄԱՆՆԵՐՈՎ »Չիպի մեջ, որն է ՝ Անհարկի թափոն
UCL -Embedded -Relay Communication Box: 5 քայլ

UCL -Embedded -Relay Communication Box. Այս նախագծի հիմնական գաղափարն է վերահսկել երկու ռելեներ և DHT11 տվիչ `Blynk հավելվածով WiFi կապի և Nodmcu esp8266 միկրո վերահսկիչի միջոցով:
DC շարժիչի արագության կառավարում PID ալգորիթմի միջոցով (STM32F4). 8 քայլ (նկարներով)

DC շարժիչի արագության կառավարում PID ալգորիթմի միջոցով (STM32F4). Բարև բոլորին, սա tahir ul haq է մեկ այլ նախագծով: Այս անգամ այն STM32F407 է որպես MC: Սա կիսամյակային ծրագրի ավարտ է: Հուսով եմ, որ ձեզ դուր կգա: Այն պահանջում է շատ հասկացություններ և տեսություն, ուստի մենք առաջինը կմտնենք դրա մեջ: Համակարգիչների գալուստով և