Obsah:
- Krok 1: Požadavky na software a hardware
- Krok 2: Konfigurace STM32CubeMX
- Krok 3: Vývoj softwaru Keil
- Krok 4: Vývoj softwaru Python
- Krok 5: Závěr
Video: Deska zjišťování STM32F4 a komunikace Python USART (STM32CubeMx): 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Ahoj! V tomto tutoriálu se pokusíme navázat komunikaci USART mezi STM32F4 ARM MCU a Pythonem (lze jej nahradit jakýmkoli jiným jazykem). Takže začneme:)
Krok 1: Požadavky na software a hardware
Co se týče hardwaru, potřebujete:
- Deska zjišťování STM32F4 (nebo jakákoli jiná deska STM32)
- Převodník USB na TTL
Pokud jde o software:
- STM32CubeMX
- Keil uVision5
- Python s nainstalovanou sériovou knihovnou
Krok 2: Konfigurace STM32CubeMX
Nejprve pochopme, co chceme dělat. Chceme přenášet data na palubu z Pythonu přes USART a zkontrolovat, zda máme správná data a přepínat LED. Potřebujeme tedy povolit USART a Led.
-
Povolte USART2 na kartě Připojení.
- Změňte režim na Asynchoronous
- Přenosová rychlost až 9600 bitů/s
- Délka slova do 8 bitů bez parity
- Žádná parita
- Z nastavení DMA přidejte USART2_RX v cyklickém režimu
- Z nastavení NVIC povolte globální přerušení USART2
- LED aktivujte kliknutím na PD12
Pak vygenerujte kód:)
Krok 3: Vývoj softwaru Keil
#zahrnout
#zahrnout
Tyto knihovny budou potřeba v řetězcových operacích a k definování logické proměnné.
/ *KÓD UŽIVATELE ZAČÍNÁ 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * KÓD UŽIVATELE KONEC 2 */
Zde začal příjem UART s DMA.
/ *UŽIVATELSKÝ KÓD ZAČÍNÁ 4 */neplatné HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Zabraňte nepoužitým varováním při kompilaci */NEPOUŽITÉ (huart); / * POZNÁMKA: Tato funkce by neměla být upravována, pokud je potřeba zpětné volání, HAL_UART_RxCpltCallback lze implementovat do uživatelského souboru */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; index _ ++; } else {index_ = 0; skončil = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * KÓD UŽIVATELE KONEC 4 * /
Toto je ISR, který se aktivuje, když získáme jeden bajt znaku. Tak. získáme ten bajt a zapíšeme jej do data_full, který obsahuje všechna přijatá data, dokud nedostaneme '\ n'. Když dostaneme '\ n', vytvoříme hotový příznak 1 a smyč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ŽIVATELE ZAČÍNÁ 3 * /}
Pokud je hotový příznak VYSOKÝ, porovnáme obsah plně přijatých dat a požadovaných dat a pokud jsou stejné, přepneme LED. Poté vymažeme hotový příznak a počkáme na nová data a také vymažeme pole data_full, aby nedošlo k přepsání do pole.
Krok 4: Vývoj softwaru Python
Zde tedy chceme poslat naše číslo s '/n' na konci, protože software Keil to bude muset vidět, aby poznal konec.
importní seriál
ser = serial. Serial ('COM17') #zkontrolujte tento port ve vašem zařízení ve Správci zařízení
ser.write (b'24 / n ')
Měli byste vidět, že se LED přepíná pokaždé, když odešlete '24 / n '. Pokud pošlete cokoli jiného, nemělo by to mít vliv.
Krok 5: Závěr
Došli jsme na konec tutoriálu. pokud máte nějaký problém nebo otázku, neváhejte se zeptat. Budu se snažit pomáhat, jak budu moci. Děkuji mnohokrát:)
Doporučuje:
Zjišťování mimořádných situací - Qualcomm Dragonboard 410c: 7 kroků
Zjišťování mimořádných situací - Qualcomm Dragonboard 410c: Hledáte -li bezpečnostní systémy, které pracují na monitorování mimořádných situací, je možné si všimnout, že zpracovat všechny zaznamenané informace je příliš obtížné. Když jsme o tom přemýšleli, rozhodli jsme se využít své znalosti v oblasti zpracování zvuku/obrazu, senzorů a
Deska MXY - nízkorozpočtová deska robota pro kreslení plotru XY: 8 kroků (s obrázky)
Deska MXY - nízkorozpočtová deska robota pro kreslení plotrů XY: Mým cílem bylo navrhnout desku mXY tak, aby byl nízkorozpočtový kreslící stroj plotru XY. Navrhl jsem tedy desku, která to usnadní těm, kteří chtějí tento projekt udělat. V předchozím projektu při použití 2 ks krokových motorů Nema17 tato deska
Sériová komunikace PIC MCU a Python: 5 kroků
Sériová komunikace PIC MCU a Python: Dobrý den, lidi! V tomto projektu se pokusím vysvětlit své experimenty na sériové komunikaci PIC MCU a Python. Přes internet existuje mnoho návodů a videí, jak komunikovat s PIC MCU přes virtuální terminál, což je velmi užitečné. Howev
Sériová komunikace Arduino a Python - displej klávesnice: 4 kroky
Sériová komunikace Arduino a Python - zobrazení klávesnice: Tento projekt je určen pro uživatele počítačů Mac, ale lze jej také implementovat pro Linux a Windows, jediným krokem, který by se měl lišit, je instalace
Komunikace ESP8266 a Python pro Noobs: 6 kroků
Komunikace ESP8266 a Python pro Noobs: Tato příručka vám umožňuje získat jakákoli data z ESP8266 a ovládat je přes python bez AT příkazů. Pro začátečníky je většina příruček o používání ESP8266 obtížná, protože chtějí, abyste blikli „AT COMMANDS”Do čipu, což je: Nepotřebné bylo