Tartalomjegyzék:
- 1. lépés: Szoftver- és hardverkövetelmények
- 2. lépés: STM32CubeMX konfiguráció
- 3. lépés: Keil szoftverfejlesztés
- 4. lépés: Python szoftverfejlesztés
- 5. lépés: Következtetés
Videó: STM32F4 Discovery Board és Python USART kommunikáció (STM32CubeMx): 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Szia! Ebben az oktatóanyagban USART kommunikációt próbálunk létrehozni az STM32F4 ARM MCU és a Python között (bármely más nyelvvel helyettesíthető). Szóval kezdjük:)
1. lépés: Szoftver- és hardverkövetelmények
A hardver szempontjából a következőkre van szüksége:
- STM32F4 Discovery Board (vagy bármely más STM32 kártya)
- USB -TTL átalakító
A szoftver szempontjából:
- STM32CubeMX
- Keil uVision5
- Python soros könyvtárral telepítve
2. lépés: STM32CubeMX konfiguráció
Először is értsük meg, mit akarunk tenni. Szeretnénk adatokat továbbítani a fedélzetre a Python -ból az USART -on keresztül, és ellenőrizni, hogy helyesek -e az adatok és a váltó led. Tehát engedélyeznünk kell az USART és a Led funkciót.
-
A USART2 engedélyezése a Kapcsolódás lapon.
- Módosítsa az aszinkron módot
- Baud sebessége 9600 bit/s
- A szó hossza 8 bitre paritás nélkül
- Nincs paritás bit
- A DMA beállításokból adjon hozzá USART2_RX ciklikus módban
- Az NVIC beállításokból engedélyezze a USART2 globális megszakítást
- A LED engedélyezéséhez kattintson a PD12 gombra
Akkor generálj kódot:)
3. lépés: Keil szoftverfejlesztés
#befoglalni
#befoglalni
Ezekre a könyvtárakra lesz szükség a karakterlánc -műveletekben és a logikai változó meghatározásához.
/ *FELHASZNÁLÓI KÓD BEGIN 2 */ HAL_UART_Recep_DMA (& huart2, (uint8_t *) data_buffer, 1); / * FELHASZNÁLÓI KÓD VÉGE 2 */
Itt elindult az UART -vétel DMA -val.
/ *FELHASZNÁLÓI KÓD 4 BEGIN * */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Megakadályozza a nem használt argumentum (ok) összeállítási figyelmeztetést */UNUSED (huart); / * MEGJEGYZÉS: Ezt a funkciót nem szabad módosítani, ha visszahívásra van szükség, a HAL_UART_RxCpltCallback megvalósítható a felhasználói fájlban */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; index _ ++; } else {index_ = 0; kész = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * FELHASZNÁLÓI KÓD VÉGE 4 * /
Ez az ISR, amely akkor aktiválódik, amikor egy bájt karaktert kapunk. Így. megkapjuk azt a bájtot, és beírjuk a data_full -ba, amely a teljes fogadott adatot tartalmazza, amíg meg nem kapjuk a "\ n" -t. Amikor megkapjuk a „\ n” értéket, elkészítjük az 1 -es és a bekapcsolt zászlót:
while (1) { / * FELHASZNÁLÓI KÓD VÉGE VÉGRE * / ha (kész) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); kész = 0; } else {_NOP (); } / * A FELHASZNÁLÓI KÓD BEGIN 3 * /}
Ha a kész jelző MAGAS, összehasonlítjuk a teljes fogadott adatok és a kívánt adatok tartalmát, és ha egyenlők, akkor váltjuk a ledet. Ezt követően töröljük a kész zászlót, és várjuk az új adatokat, és töröljük a data_full tömböt is, nehogy felülírjuk a tömböt.
4. lépés: Python szoftverfejlesztés
Tehát itt szeretnénk elküldeni a számunkat a '/n' karakterrel a végén, mert a Keil szoftvernek látnia kell, hogy megtudja a végét.
sorozat importálása
ser = serial. Serial ('COM17') #ellenőrizze az eszköz portját az Eszközkezelőben
ser.write (b'24 / n ')
Látnia kell, hogy a LED minden alkalommal vált, amikor elküldi a '24 / n 'értéket. Ha mást küld, az nem befolyásolhatja.
5. lépés: Következtetés
Az oktatóanyag végéhez értünk. ha bármilyen problémája vagy kérdése van, ne habozzon feltenni. Igyekszem segíteni, amennyire csak tudok. Nagyon szépen köszönjük:)
Ajánlott:
SmartHome vezeték nélküli kommunikáció: az MQTT extrém alapjai: 3 lépés
SmartHome vezeték nélküli kommunikáció: az MQTT extrém alapjai: MQTT alapismeretek: ** Házi automatizálási sorozatot fogok készíteni, és végig fogom menni azon lépéseken, amelyeket megtettem, hogy megtanuljak mindent, amit a jövőben csináltam. Ez az Instructable az alapvonal az MQTT beállításához a jövőbeli Instructables -ben való használatra. Hogyan
LoRa 3–8 km vezeték nélküli kommunikáció alacsony költségű E32 (sx1278/sx1276) eszközzel Arduino, Esp8266 vagy Esp32 esetén: 15 lépés
LoRa 3Km -8Km vezeték nélküli kommunikáció alacsony költségű E32 (sx1278/sx1276) eszközzel Arduino, Esp8266 vagy Esp32 számára: Könyvtárat hozok létre az EBYTE E32 kezeléséhez, a LoRa eszköz Semtech sorozatán alapuló, nagyon erős, egyszerű és olcsó eszköz segítségével. 3 km -es verzió itt, 8 km -es verzió itt 3000 és 8000 m közötti távolságon dolgozhatnak, és sok funkcióval rendelkeznek
PIC MCU és Python soros kommunikáció: 5 lépés
PIC MCU és Python soros kommunikáció: Helló, srácok! Ebben a projektben megpróbálom elmagyarázni a PIC MCU és Python soros kommunikációval kapcsolatos kísérleteimet. Az interneten számos oktatóanyag és videó található a PIC MCU -val való kommunikációról a virtuális terminálon keresztül, ami nagyon hasznos. Howev
Arduino és Python soros kommunikáció - Billentyűzet kijelző: 4 lépés
Arduino és Python soros kommunikáció - Billentyűzet kijelző: Ez a projekt mac felhasználók számára készült, de Linuxra és Windowsra is megvalósítható, az egyetlen lépés, aminek másnak kell lennie, a telepítés
ESP8266 és Python kommunikáció Noobs: 6 lépés
ESP8266 és Python kommunikáció: Noobs: Ez az útmutató lehetővé teszi az ESP8266 -ból származó adatok beszerzését és a python feletti vezérlést AT parancsok nélkül. A kezdők számára az ESP8266 használatára vonatkozó útmutatók többsége nehéz, mert azt akarják, hogy villogjon „AT PARANCSOK”Chipbe, ami: Unnecessary Wast