Talaan ng mga Nilalaman:
- Hakbang 1: Mga Kinakailangan sa Software at Hardware
- Hakbang 2: Pag-configure ng STM32CubeMX
- Hakbang 3: Pag-unlad ng Keil Software
- Hakbang 4: Pag-unlad ng Python Software
- Hakbang 5: Konklusyon
Video: STM32F4 Discovery Board at Python USART Communication (STM32CubeMx): 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Hi! Sa tutorial na ito susubukan naming magtaguyod ng komunikasyon sa USART sa pagitan ng STM32F4 ARM MCU at Python (maaari itong mapalitan ng anumang ibang wika). Kaya, magsimula na tayo:)
Hakbang 1: Mga Kinakailangan sa Software at Hardware
Sa mga tuntunin ng hardware na kailangan mo:
- STM32F4 Discovery Board (o anumang iba pang board ng STM32)
- USB sa TTL converter
Sa mga tuntunin ng software:
- STM32CubeMX
- Keil uVision5
- Python na may naka-install na serial library
Hakbang 2: Pag-configure ng STM32CubeMX
Unawain muna natin kung ano ang gusto nating gawin. Nais naming magpadala ng data upang makasakay mula sa Python sa paglipas ng USART at suriin kung mayroon kaming tamang data at pinamunuan ang toggle. Kaya, kailangan naming paganahin ang USART at Led.
-
Paganahin ang USART2 mula sa tab na Pagkakonekta.
- Baguhin ang mode sa Asynchoronous
- Baud rate sa 9600 Bits / s
- Haba ng salita sa 8 Bits na walang pagkakapantay-pantay
- Walang parity bit
- Mula sa mga setting ng DMA idagdag ang USART2_RX sa cicular mode
- Mula sa Mga Setting ng NVIC, paganahin ang USART2 pandaigdigang makagambala
- Paganahin ang LED sa pamamagitan ng pag-click sa PD12
Pagkatapos makabuo ng code:)
Hakbang 3: Pag-unlad ng Keil Software
# isama
# isama
Ang mga libraryong ito ay kinakailangan sa mga pagpapatakbo ng string at upang tukuyin ang variable ng boolean.
/ * USER CODE BEGIN 2 * / HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * USER CODE END 2 * /
Dito, nagsimula ang pagtanggap ng UART kasama ang DMA.
/ * USER CODE BEGIN 4 * / void HAL_UART_RxCpltCallback (UART_HandleTypeDef * huart) {/ * Pigilan ang (mga) hindi nagbigay ng babalang babala * / UNUSED (huart); / * TANDAAN: Ang pagpapaandar na ito ay hindi dapat mabago, kung kinakailangan ang callback, maaaring ipatupad ang HAL_UART_RxCpltCallback sa file ng gumagamit * / kung (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; index _ ++; } iba pa {index_ = 0; tapos = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * USER CODE END 4 * /
Ito ang ISR na naaktibo kapag nakakakuha kami ng isang byte ng character. Kaya naman nakukuha namin ang byte na iyon at isulat ito sa data_full na naglalaman ng buong natanggap na data hanggang makuha namin ang '\ n'. Kapag nakuha namin ang '\ n' tapos na namin ang flag 1 at habang habang loop:
habang (1) {/ * USER CODE END WHILE * / if (tapos) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); tapos = 0; } iba pa {_NOP (); } / * USD CODE BEGIN 3 * /}
Kung ang natapos na watawat ay TAAS ihinahambing namin ang mga nilalaman ng buong natanggap na data at data na nais namin at kung pantay ang mga ito pinapalitan namin ang humantong. Pagkatapos nito ay tinanggal namin ang natapos na bandila at maghintay para sa bagong data at i-clear din ang data_full na array upang hindi ma-overlap sa array.
Hakbang 4: Pag-unlad ng Python Software
Kaya, dito nais naming ipadala ang aming numero na may '/ n' sa dulo, dahil kailangan itong makita ng Keil software upang malaman ang katapusan.
mag-import ng serial
ser = serial. Serial ('COM17') #check ang port na iyon sa iyong aparato mula sa Device Manager
ser.write (b'24 / n ')
Dapat mong makita na ang mga toggle ng LED sa tuwing magpapadala ka ng '24 / n '. Kung magpapadala ka ng anumang bagay hindi ito dapat makakaapekto dito.
Hakbang 5: Konklusyon
Narating namin ang pagtatapos ng tutorial. kung mayroon kang anumang problema o katanungan mangyaring huwag mag-atubiling magtanong. Susubukan kong tumulong hangga't makakaya ko. Maraming salamat:)
Inirerekumendang:
Ang SmartHome Wireless Communication: ang Extreme Basics ng MQTT: 3 Hakbang
Ang SmartHome Wireless Communication: ang Extreme Basics ng MQTT: Mga Pangunahing Kaalaman sa MQTT: ** Gagawin ko ang isang serye sa Home Automation, dadaanin ko ang mga hakbang na kinuha ko upang malaman ang lahat ng nagawa ko sa hinaharap. Ang Instructable na ito ay ang batayan sa kung paano mag-set up ng MQTT para magamit sa aking hinaharap na Mga Instructable. Howeve
Remote Control Car With NRF24L01 PA LNA Communication Module: 5 Hakbang
Remote Control Car With NRF24L01 PA LNA Communication Module: Sa paksang ito, nais naming ibahagi ang tungkol sa kung paano gumawa ng isang remote control car gamit ang NRF24L01 PA LNA module. Sa totoo lang maraming iba pang mga module ng radyo, tulad ng 433MHz, HC12, HC05, at LoRa radio modules. Ngunit sa aming palagay ang NRF24L01 mod
LoRa 3Km hanggang 8Km Wireless Communication Na May Mababang Gastos E32 (sx1278 / sx1276) Device para sa Arduino, Esp8266 o Esp32: 15 Hakbang
LoRa 3Km hanggang 8Km Wireless Communication Sa Mababang Gastos E32 (sx1278 / sx1276) Device para sa Arduino, Esp8266 o Esp32: Lumilikha ako ng isang library upang pamahalaan ang EBYTE E32 batay sa serye ng Semtech ng aparato ng LoRa, napakalakas, simple at murang aparato. Maaari mong makita Bersyon ng 3Km dito, bersyon 8Km dito. Maaari silang gumana sa layo na 3000m hanggang 8000m, at mayroon silang maraming mga tampok na
PIC MCU at Python Serial Communication: 5 Mga Hakbang
PIC MCU at Python Serial Communication: Kumusta, guys! Sa proyektong ito susubukan kong ipaliwanag ang aking mga eksperimento sa PIC MCU at Python serial na komunikasyon. Sa paglipas ng internet, maraming mga tutorial at video kung paano makipag-usap sa PIC MCU sa virtual terminal na napaka kapaki-pakinabang. Howev
Serial Communication ng Arduino at Python - Display ng Keypad: 4 na Hakbang
Serial Communication ng Arduino at Python - Display ng Keypad: Ang Proyekto na ito ay ginawa para sa mga gumagamit ng mac ngunit maaari rin itong ipatupad para sa Linux at Windows, ang tanging hakbang na dapat na magkakaiba ay ang pag-install