Obsah:
- Krok 1: Požiadavky na softvér a hardvér
- Krok 2: Konfigurácia STM32CubeMX
- Krok 3: Vývoj softvéru Keil
- Krok 4: Vývoj softvéru Python
- Krok 5: Záver
Video: STM32F4 Discovery Board a komunikácia Python USART (STM32CubeMx): 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Ahoj! V tomto návode sa pokúsime nadviazať komunikáciu USART medzi STM32F4 ARM MCU a Pythonom (je možné ho nahradiť iným jazykom). Začnime teda:)
Krok 1: Požiadavky na softvér a hardvér
Čo sa týka hardvéru, potrebujete:
- STM32F4 Discovery Board (alebo akákoľvek iná doska STM32)
- Konvertor USB na TTL
Pokiaľ ide o softvér:
- STM32CubeMX
- Keil uVision5
- Python s nainštalovanou sériovou knižnicou
Krok 2: Konfigurácia STM32CubeMX
Najprv pochopme, čo chceme robiť. Chceme prenášať údaje na palubu z Pythonu cez USART a kontrolovať, či máme správne údaje a prepínať LED. Preto musíme povoliť USART a Led.
-
Aktivujte USART2 na karte Pripojenie.
- Zmeňte režim na Asynchoronous
- Prenosová rýchlosť až 9600 bitov/s
- Dĺžka slova je 8 bitov bez parity
- Žiadna parita
- Z nastavení DMA pridajte USART2_RX v cyklickom režime
- Z nastavení NVIC povoľte globálne prerušenie USART2
- LED aktivujte kliknutím na PD12
Potom vygenerujte kód:)
Krok 3: Vývoj softvéru Keil
#zahrnúť
#zahrnúť
Tieto knižnice budú potrebné pri reťazcových operáciách a na definovanie booleovskej premennej.
/ *KÓD UŽÍVATEĽA ZAČÍNA 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * KÓD UŽÍVATEĽA KONIEC 2 */
Tu sa začal príjem UART s DMA.
/ *KÓD UŽÍVATEĽA ZAČÍNA 4 */neplatné HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Zabrániť upozorneniu na kompiláciu nepoužitých argumentov */NEPOUŽITÉ (huart); / * POZNÁMKA: Túto funkciu by ste nemali upravovať, keď je potrebné spätné volanie, HAL_UART_RxCpltCallback by bolo možné implementovať do užívateľského súboru */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; index _ ++; } else {index_ = 0; hotové = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * KÓD UŽÍVATEĽA KONIEC 4 * /
Toto je ISR, ktorý sa aktivuje, keď získame jeden bajt znaku. Takže. dostaneme ten bajt a napíšeme ho do súboru data_full, ktorý obsahuje úplné prijaté údaje, kým nezískame '\ n'. Keď dostaneme '\ n', urobíme hotový príznak 1 a slučku while:
while (1) { / * USER CODE END WHILE * / if (finished) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); skončil = 0; } else {_NOP (); } / * KÓD UŽÍVATEĽA ZAČÍNA 3 * /}
Ak je hotový príznak HIGH, porovnáme obsah všetkých prijatých údajov a požadovaných údajov a ak sú rovnaké, prepneme LED. Potom vymažeme príznak ready a počkáme na nové údaje a tiež vymažeme pole data_full, aby sa pole neprepísalo.
Krok 4: Vývoj softvéru Python
Tu teda chceme poslať naše číslo s '/n' na konci, pretože softvér Keil ho bude musieť vidieť, aby poznal koniec.
importný seriál
ser = serial. Serial ('COM17') #skontrolujte tento port na svojom zariadení v Správcovi zariadení
ser.write (b'24 / n ')
Mali by ste vidieť, že LED dióda sa prepína vždy, keď odošlete '24 / n '. Ak pošlete čokoľvek iné, nemalo by to mať vplyv.
Krok 5: Záver
Dostali sme sa na koniec tutoriálu. ak máte akýkoľvek problém alebo otázku, neváhajte sa opýtať. Pokúsim sa pomôcť, ako môžem. Ďakujem mnohokrát:)
Odporúča:
Bezdrôtová komunikácia LoRa 3 km až 8 km s nízkymi nákladmi na zariadenie E32 (sx1278/sx1276) pre Arduino, Esp8266 alebo Esp32: 15 krokov
Bezdrôtová komunikácia LoRa 3 km až 8 km s nízkymi nákladmi na zariadenie E32 (sx1278/sx1276) pre Arduino, Esp8266 alebo Esp32: Vytváram knižnicu na správu EBYTE E32 na základe série zariadení LoRa Semtech, veľmi výkonného, jednoduchého a lacného zariadenia. Verzia 3 km tu, verzia 8 km tu Môžu pracovať na vzdialenosť 3 000 až 8 000 m a majú mnoho funkcií
Gyroskop MPU 6050, akcelerometer, komunikácia s Arduino (Atmega328p): 5 krokov
Gyroskop MPU 6050, akcelerometer s Arduino (Atmega328p): MPU6050 IMU má v jednom čipe integrovaný trojosový akcelerometer aj trojosový gyroskop. Gyroskop meria rýchlosť otáčania alebo rýchlosť zmeny uhlovej polohy v priebehu času pozdĺž Os X, Y a Z. Výstupy gyroskopu sú
Sériová komunikácia PIC MCU a Python: 5 krokov
Sériová komunikácia PIC MCU a Python: Dobrý deň, chlapci! V tomto projekte sa pokúsim vysvetliť svoje experimenty so sériovou komunikáciou PIC MCU a Python. Cez internet existuje mnoho návodov a videí o tom, ako komunikovať s PIC MCU prostredníctvom virtuálneho terminálu, čo je veľmi užitočné. Howev
Sériová komunikácia Arduino a Python - displej klávesnice: 4 kroky
Sériová komunikácia Arduino a Python - zobrazenie klávesnice: Tento projekt je vytvorený pre používateľov počítačov Mac, ale je možné ho implementovať aj pre systémy Linux a Windows, jediným krokom, ktorý by sa mal líšiť, je inštalácia
Komunikácia ESP8266 a Python pre Noobs: 6 krokov
Komunikácia ESP8266 a Python pre Noobs: Táto príručka vám umožňuje získať akékoľvek údaje z ESP8266 a ovládať ich v pythone bez príkazov AT. Pre začiatočníkov je väčšina sprievodcov používaním ESP8266 náročná, pretože chcú, aby ste blikali „AT COMMANDS”Do čipu, ktorý znie: Nepotrebné bolo