Inhaltsverzeichnis:
- Schritt 1: Software- und Hardwareanforderungen
- Schritt 2: STM32CubeMX-Konfiguration
- Schritt 3: Keil Softwareentwicklung
- Schritt 4: Python-Softwareentwicklung
- Schritt 5: Fazit
Video: STM32F4 Discovery Board und Python USART-Kommunikation (STM32CubeMx) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Hi! In diesem Tutorial werden wir versuchen, die USART-Kommunikation zwischen STM32F4 ARM MCU und Python herzustellen (sie kann durch jede andere Sprache ersetzt werden). Also lasst uns anfangen:)
Schritt 1: Software- und Hardwareanforderungen
In Bezug auf die Hardware benötigen Sie:
- STM32F4 Discovery Board (oder jedes andere STM32 Board)
- USB-zu-TTL-Konverter
Was die Software angeht:
- STM32CubeMX
- Keil uVision5
- Python mit installierter serieller Bibliothek
Schritt 2: STM32CubeMX-Konfiguration
Lassen Sie uns zuerst verstehen, was wir tun wollen. Wir möchten Daten von Python über USART an das Board übertragen und prüfen, ob wir die richtigen Daten und Toggle-LEDs haben. Also müssen wir USART und Led aktivieren.
-
Aktivieren Sie USART2 auf der Registerkarte Konnektivität.
- Ändern Sie den Modus zu Asynchron
- Baudrate bis 9600 Bit/s
- Wortlänge bis 8 Bit ohne Parität
- Kein Paritätsbit
- Fügen Sie in den DMA-Einstellungen USART2_RX im Cicular-Modus hinzu
- Aktivieren Sie in den NVIC-Einstellungen den globalen USART2-Interrupt
- Aktivieren Sie die LED durch Klicken auf PD12
Dann Code generieren:)
Schritt 3: Keil Softwareentwicklung
#enthalten
#enthalten
Diese Bibliotheken werden in String-Operationen und zum Definieren von booleschen Variablen benötigt.
/* BENUTZERCODE BEGIN 2 */ HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1); /* BENUTZERCODE ENDE 2 */
Hier wird der UART-Empfang mit gestartetem DMA ausgeführt.
/* BENUTZERCODE BEGIN 4 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* Kompilierungswarnung für nicht verwendete Argumente verhindern */ UNUSED(huart); /* HINWEIS: Diese Funktion sollte nicht geändert werden, wenn der Callback benötigt wird, könnte der HAL_UART_RxCpltCallback in der Benutzerdatei implementiert werden */ if(data_buffer[0] != '\n'){ data_full[index_] = data_buffer[0]; index_++; }sonst{ index_ = 0; fertig = 1; } //HAL_UART_Transmit(&huart2, data_buffer, 1, 10); } /* BENUTZERCODE ENDE 4 */
Dies ist ISR, das aktiviert wird, wenn wir ein Zeichenbyte erhalten. So. wir erhalten dieses Byte und schreiben es in data_full, das die vollständigen empfangenen Daten enthält, bis wir '\n' erhalten. Wenn wir '\n' erhalten, machen wir das fertige Flag 1 und in die while-Schleife:
while (1) { /* BENUTZERCODE END WHILE */ if (fertig) { if (strcmp (data_full, cmp_) == 0) { HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset(data_full, '\0', strlen(data_full)); fertig = 0; }sonst{ _NOP (); } /* BENUTZERCODE BEGIN 3 */ }
Wenn das Fertig-Flag HIGH ist, vergleichen wir den Inhalt der vollständigen empfangenen Daten und der Daten, die wir wünschen, und wenn sie gleich sind, schalten wir LED um. Danach löschen wir das Fertig-Flag und warten auf neue Daten und löschen auch das data_full-Array, um das Array nicht zu überschreiben.
Schritt 4: Python-Softwareentwicklung
Hier möchten wir also unsere Nummer mit '/n' am Ende senden, da die Keil-Software sie sehen muss, um das Ende zu kennen.
Seriennummer importieren
ser = serial. Serial('COM17') #überprüfe diesen Port auf deinem Gerät im Geräte-Manager
ser.write(b'24\n')
Sie sollten sehen, dass die LED jedes Mal umschaltet, wenn Sie '24\n' senden. Wenn Sie etwas anderes senden, sollte dies keinen Einfluss darauf haben.
Schritt 5: Fazit
Wir sind am Ende des Tutorials angelangt. Wenn Sie ein Problem oder eine Frage haben, zögern Sie bitte nicht zu fragen. Ich werde versuchen, so gut ich kann zu helfen. Vielen Dank:)
Empfohlen:
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
Ein günstiges Attiny Arduino Board herstellen – wikiHow
Wie man ein billiges Attiny Arduino Board herstellt: Nun, die meiste Zeit bekomme ich Probleme, wenn ich Arduino in einigen Projekten benötige, bei denen ich nur wenige I / O-Pins benötige 85/45Arduino-Tiny ist ein Open-Source-Set von ATtiny
So erstellen Sie eine funktionierende Ampel mit einem Auduino-Board – wikiHow
So erstellen Sie eine funktionierende Ampel mit einem Auduino-Board: Ampeln sind Signalgeräte, die häufig an Straßenkreuzungen, Fußgängerüberwegen und anderen Orten verwendet werden, um den Verkehrsfluss zu steuern. Eine handbetätigte Gasampel war die erste ihrer Art und die Technologie hat die Si
So erstellen Sie Ihr eigenes Arduino-Board (xduino) – wikiHow
So erstellen Sie Ihr eigenes Arduino-Board (xduino): Video ansehen
So erstellen Sie eine Message Board-Website mit PHP und MYSQL – wikiHow
So erstellen Sie eine Message Board-Website mit PHP und MYSQL: Diese Anleitung zeigt Ihnen, wie Sie eine Message Board-Website mit PHP, MySQL, HTML und CSS erstellen. Wenn Sie neu in der Webentwicklung sind, machen Sie sich keine Sorgen, es gibt detaillierte Erklärungen und Analogien, damit Sie die Konzepte besser verstehen. Matte