Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
Pershendetje! Në këtë tutorial do të përpiqemi të krijojmë komunikim USART midis STM32F4 ARM MCU dhe Python (mund të zëvendësohet me ndonjë gjuhë tjetër). Pra, le të fillojmë:)
Hapi 1: Kërkesat për softuer dhe harduer
Për sa i përket harduerit ju nevojiten:
- Bordi i Zbulimit STM32F4 (ose ndonjë bord tjetër STM32)
- Konvertuesi USB në TTL
Për sa i përket softuerit:
- STM32CubeMX
- Keil uVision5
- Python me bibliotekën serike të instaluar
Hapi 2: Konfigurimi STM32CubeMX
Së pari le të kuptojmë se çfarë duam të bëjmë. Ne duam të transmetojmë të dhëna në bord nga Python përmes USART dhe të kontrollojmë nëse kemi të dhëna të sakta dhe ndryshojmë led. Pra, na duhet të aktivizojmë USART dhe Led.
-
Aktivizo USART2 nga skeda Lidhshmëria.
- Ndryshoni modalitetin në Asinkorone
- Shkalla Baud në 9600 Bits/s
- Gjatësia e fjalës në 8 Bite pa barazi
- Pa pak paritet
- Nga cilësimet DMA shtoni USART2_RX në mënyrë ciklike
- Nga Cilësimet NVIC aktivizoni ndërprerjen globale USART2
- Aktivizoni LED duke klikuar në PD12
Pastaj gjeneroni kod:)
Hapi 3: Zhvillimi i softuerit Keil
#përfshi
#përfshi
Këto biblioteka do të jenë të nevojshme në operacionet me varg dhe për të përcaktuar ndryshoren boolean.
/ *KODI I PERRDORUESIT FILLON 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * KODI I PERRDORUESIT P ENDRFUNDIMI 2 */
Këtu, marrja UART me DMA filloi.
/ *KODI I PERRDORUESIT FILLON 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Parandaloni paralajmërimin e përpilimit të argumenteve të papërdorur */PUSRDORUAR (huart); / * SHENIM: Ky funksion nuk duhet të modifikohet, kur nevojitet kthimi i thirrjes, HAL_UART_RxCpltCallback mund të zbatohet në skedarin e përdoruesit */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; indeksi _ ++; } tjetër {index_ = 0; përfundoi = 1; } // HAL_UART_Transmeto (& huart2, data_buffer, 1, 10); } / * KODI I PERRDORUESIT P ENDRFUNDIMI 4 * /
Ky është ISR i cili aktivizohet kur marrim një bajt karakter. Kështu që. marrim atë bajt dhe e shkruajmë në data_full e cila përmban të dhënat e plota të marra derisa të marrim '\ n'. Kur marrim '\ n' bëjmë flamurin e përfunduar 1 dhe në lak while:
ndërsa (1) { / * KODI I PERRDORUESIT P ENDRFUNDIM KUR * / nëse (e përfunduar) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); përfunduar = 0; } tjetër {_NOP (); } / * KODI I PERRDORUESIT FILLON 3 * /}
Nëse flamuri i përfunduar është LART krahasojmë përmbajtjen e të dhënave të plota të marra dhe të dhënave që dëshirojmë dhe nëse ato janë të barabarta kalojmë në led. Pas kësaj ne pastrojmë flamurin e përfunduar dhe presim për të dhëna të reja dhe gjithashtu pastrojmë grupin data_full në mënyrë që të mos mbishkruajmë në grup.
Hapi 4: Zhvillimi i softuerit Python
Pra, këtu ne duam të dërgojmë numrin tonë me '/n' në fund, sepse softueri Keil do të duhet ta shohë atë në mënyrë që të dijë fundin.
serial importi
ser = serial. Serial ('COM17') #kontrolloni atë port në pajisjen tuaj nga Device Manager
ser.write (b'24 / n ')
Duhet të shihni që LED ndryshon çdo herë që dërgoni '24 / n '. Nëse dërgoni diçka tjetër nuk duhet të ndikojë në të.
Hapi 5: Përfundimi
Kemi arritur në fund të mësimit. nëse keni ndonjë problem apo pyetje ju lutem mos hezitoni të pyesni. Do të përpiqem të ndihmoj sa të mundem. Faleminderit shumë:)
Recommended:
Komunikimi Arduino dhe Mobile me celular (lajmëtar): 8 hapa
Komunikimi Arduino dhe Mobile Bluetooth (lajmëtar): Komunikimi po luan një faktor të rëndësishëm në jetën tonë të përditshme. Por gjatë këtyre kohës së bllokimit komunikimi me familjen tonë ose komunikimi me njerëzit në shtëpinë tonë ndonjëherë kanë nevojë për telefona celularë. Por përdorimi i celularëve për një kohë të shkurtër
Bordi MXY - Bordi Robot i Vizatimit të XY Plotter me Buxhet të ulët: 8 hapa (me fotografi)
Bordi MXY - Bordi i Robotit të Vizatimit të Plotterit XY me Buxhet të ulët: Qëllimi im ishte të hartoja bordin mXY për të bërë buxhet të ulët makinën e vizatimit të komplotit XY. Kështu që unë projektova një tabelë që e bën më të lehtë për ata që duan ta bëjnë këtë projekt. Në projektin e mëparshëm, ndërsa përdorni 2 copë motorë stepper Nema17, ky bord u
Komunikimi Serial i Arduino dhe Python - Ekrani i tastierës: 4 hapa
Komunikimi Serial i Arduino dhe Python - Ekrani i tastierës: Ky Projekt është bërë për përdoruesit e Mac por mund të zbatohet edhe për Linux dhe Windows, hapi i vetëm që duhet të jetë i ndryshëm është instalimi
ESP8266 dhe komunikimi Python Për Noobs: 6 hapa
ESP8266 dhe Python Communication For Noobs: Ky udhëzues ju lejon të merrni ndonjë të dhënë nga ESP8266 dhe ta kontrolloni atë mbi python pa komandat AT. Për fillestarët, shumica e udhëzuesve për përdorimin e ESP8266 është e vështirë, sepse ata duan që ju të ndizni "N CO KOMANDA”Në çip, i cili është: Mbetje e Panevojshme
Bordi i Programimit dhe Zhvillimit ESP-12E dhe ESP-12F: 3 hapa (me fotografi)
Bordi i Programimit dhe Zhvillimit ESP-12E dhe ESP-12F: Përgjegjësia për këtë bord ishte e thjeshtë: Jini në gjendje të programoni modulet ESP-12E dhe ESP-12F aq lehtë sa bordet e NodeMCU (dmth. Nuk ka nevojë të shtypni butonat). Keni kunja miqësore të bukës me qasje në IO të përdorshëm. Përdorni një USB të veçantë për transmetimin serik