STM32L451 UART overrun: Interrupt auch ohne Enable?

OP #6115520
Lesenswert?
• ▲
▼
hallo :(

Ist das normal? Ein UART benutzt zum Empfang Interrupts, also sind der 
RXNE Interrupt und der RTO Interrupt eingeschaltet und sonst nichts. Das 
funktioniert auch -- solange es keinen overrun error gibt. Dann bleibt 
der/ein Interrupt aktiv, auch wenn keine weiteren Zeichen rein kommen.

Wenn man das ORE Flag explizit löscht, scheint es zu funktionieren, 
aber overrun errors sind nicht leicht zu provozieren und Endlosschleifen 
auf Interrupt-Ebene sind sowieso doof. Ich bin auch nur 95% sicher, dass 
die Endlosschleife so kurz ist. Es ist auch unlogisch, weil es extra ein 
error interrupt enable (EIE) gibt, das nicht gesetzt ist.

Im STM32L451xx device errata pdf steht nichts und im RM0394 ist alles so 
beschrieben, wie man es sich vorstellt. Meine pdfs sind allerdings alt 
(Oktober bzw. Dezember 2018). Hat evt. jemand bessere Connections zu ST 
und etwas neuere Ausgaben?

P.S. ein Breakpoint auf den ersten overrun error ergab auch nicht viel:
1
CR1  0400142d
2
CR2  00800000
3
CR3  00000000
4
RTOR 00000027
5
ISR  006110eb

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.