STM32F446: USART DMA-Transfer

OP #6084811
Hallo zusammen,

ich bin gerade dabei, die letzten Stunden vor der Bescherung dafür zu 
nutzen, an einem STM32F446RE einen UART auf andere Pins zu wechseln (von 
USART2 auf USART3).

Auf USART2 kann ich sowohl direkt (usart_putc()) Daten ausgeben, als 
auch per DMA (usart_put()). Letzteres funktioniert auf USART3 nicht.

Ich gehe gerade davon aus, daß ich einfach einen Flüchtigkeitsfehler 
gemacht habe.

Der Fehler äußert sich darin, daß per DMA kein einziges Zeichen 
ausgegeben wird. Der DMA Transfer Complete Interrupt wird aufgerufen, 
das Register DMA1_Stream3->NDTR zeigt aber nicht Null an.

Wer hat auch Langeweile und einen scharfen Blick?

Nachtrag: Ich habe es gefunden. Das Flag DMA_IT_TCIF6 bezieht sich auf 
den Stream 6 (wer hätte es ahnen können?).

Jetzt funktioniert alles und ich kann das Zeug in den nächsten Tagen in 
Ruhe aufräumen.

Schöne Weihnachten allen Rätselfreunden!
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 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.