STM32G474RE UART

Gast #5978874
Hallo alle miteinander,

ich versuche de UART eines STN32G474RE zum laufen zu bekommen. Da bei 
meiner Anwendung die Receive-Size im Allgemeinen nicht bekannt ist 
wollte ich von der HAL_RECEIVE Funktion weg kommen und versuche darum, 
das UART komplett ohne HAL zu implementieren. Leider funktioniert dies 
nicht. Mit HAL habe ich die Hardware bereits getestet. Senden und 
empfangen ist ohne Probleme möglich.
Die UART Konfiguration habe ich mir aus der Anleitung im Reference 
Manual und den Registereinträgen der MX_UART4_Init Funktion 
zusammengesucht.
Ich weiß, ich übersehe etwas. Allerdings weiß ich nicht was.
Könnt Ihr mir da helfen? Source Code und Reference Manual findet Ihr im 
Anhang. Ich verwende ein NUCLEOG474RE.

Vielen Dank.

Grüße
Marcel
Angehängte Dateien:
Gast
Brilliante Idee das Referenzmanual anzuhaengen.
Bei Problemen mit Windows 10 wird der naechste bestimmt
die Windows 10-ISO anhaengen.

Probleme mit den asynchronen Schnittstellen der STM32
hatte ich bisher nur im IRDA-Modus. Da hatte ich die
Registerbeschreibung aber eben nicht bis zum Ende gelesen.
In der Sendeschleife ist keine Verzögerung drin.
So sendet er IIRC überhaupt nix.

Auch bei dem DMA Krempel müsste man vorher wissen wieviele Bytes 
empfangen werden sollen. Bei einzelnen Bytes nimmt man den UART 
Interrupt, das ist einfacher.
Gast
Kurz:

DMA im CIRCULAR Modus betreiben und den Speicherblock als Ringpuffer 
betrachten. DMA schreibt am Ende und eine Lesefunktion nimmt Daten von 
vorne ab. Dank des IDLE Interrupts bekommt man das Ende einer Nachricht 
mit.

Ausführlich:

https://stm32f4-discovery.net/2017/07/stm32-tutorial-efficiently-receive-uart-data-using-dma/

https://community.st.com/s/feed/0D50X00009XkW2nSAF (Link zu .html Datei 
ganz oben).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.