STM32F4 finde Register nicht, welche im F3 existieren

OP #5451781
Lesenswert?
• ▲
▼
Hi,

Ich versuche ein Protokoll für einen RS485 Bus von einem STM32F303K8T6 
auf einen STM32F405RGT6 zu portieren, jedoch finde ich einige Register 
für die UART Instanz nicht. Folgende Befehle möchte ich ausführen, um 
beim Initialisieren die Interrupts zu löschen:
1
  __HAL_UART_CLEAR_IT(usart_handler,UART_IT_IDLE);
2
  __HAL_UART_CLEAR_IT(usart_handler,UART_IT_TXE);
3
  __HAL_UART_CLEAR_IT(usart_handler,UART_IT_RXNE);

Wobei
1
#define __HAL_UART_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))

Nun hat aber die UART Instanz auf dem F4 kein ICR Register und auch 
sonst existieren viel weniger Register, wobei ich auf beiden Controllern 
den UART1 verwende, welcher ja um die meisten Funktionen bietet.

Jemand eine Idee, wie ich das auf dem F4 implementiere?

RefMan:

[F4]
http://www.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf

[F3]
http://www.st.com/content/ccc/resource/technical/document/reference_manual/4a/19/6e/18/9d/92/43/32/DM00043574.pdf/files/DM00043574.pdf/jcr:content/translations/en.DM00043574.pdf
#5451825
Lesenswert?
• ▲
▼
Die Flags wie etwa USART_SR_IDLE sind nach dem Schema 
Peripherie_Register_Bit benannt. Damit gibt es USART_SR_IDLE eben auch 
nur im Status Register des UARTs (SR) und eben nicht im Control Register 
(CR).

Bert S. schrieb:
> Da nach Seite 1013 CR1 die Register enthält. Denkt ihr das ist
> äquivalent?

Genau hinschauen! Im Control Register sind die jeweiligen Interrupt 
Enable Flags. Die eigentlichen Interrupt-Flags sind beim F4 im Status 
Register.
#5451827
Lesenswert?
• ▲
▼
Nach einem ersten Blick in die Reference Manuals scheint es mir so, dass 
die USART deines F4 deutlich weniger kann als die des F3.

Da du im Fall des F3 ja bereits die HAL Library benutzt könnte es für 
dich vielleicht am einfachsten sein die entsprechende HAL für den F4 zu 
nutzen. Die sollte dann auch auf deinen Controller zugeschnitten sein. 
Ob die Funktionsnamen dann aber noch die gleichen sind? Das wird dir 
jemand anders beantworten müssen.


Nachtrag:
Vergleiche mal die Registermaps auf Seite 1021 beim F4 und Seite 950f 
beim F3.
OP #5451829
Lesenswert?
• ▲
▼
Christopher J. schrieb:
> Genau hinschauen! Im Control Register sind die jeweiligen Interrupt
> Enable Flags. Die eigentlichen Interrupt-Flags sind beim F4 im Status
> Register.

Ok, aber das StatusRegister ist ja nur readable, da kann ich nichts 
reinschreiben.

Lars F. schrieb:
> Vergleiche mal die Registermaps auf Seite 1021 beim F4 und Seite 950f
> beim F3.

Danke, schaue mir das mal an.

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.