Forum: Mikrocontroller und Digitale Elektronik USART Timing :STM32 CoIDE Waveshare 407Z


von Marc R. (Firma: ich AG) (mrupprath)


Lesenswert?

Hallo;
ich habe den USART 3 zur Send- Receive Kommunikation konfiguriert.
Über einen Timer Möchte ich jede Sekunde ein "A" senden.

Empfangene Zeiche lösen einen Interupt zur Weiterverarbeitung aus:


Dir Übertragung erfolgt bei 2400 baud mit 8N1 und Parität 0

Zur Kontrolle / Kommunikation wird "Hterm"und und "Terminal (von Jens 
Gürtler) verwendet



1 Ich empfange eine Folge "wirrer" Zeichen welche jedoch nicht Konstant 
sind , jedoch kein "A" welche ich dachte Konstant zu senden.


2. Wenn ich ein Zeichen sende, wird ein Falsches im Empfangsbuffer 
(CoCox Debugger in Interupt Routine) angezeigt:

   Beispiele:
   "A" = 65 gesendet und "_" = 95 erhalten
   "B" = 66 gesendet und "/" = 47 erhalten

Beim Empfang sind die daten jedoch konstant und reproduzierbar falsch
Beim Senden hätte ich auch Konstante Abweichungen erwartet da ich 
Konstant "A" sende.

Ich habe gehöhrt dies könne mit einem Falschem Wert im BRR Register 
liegen.


Ich habe dies mal geprüft:

Momentan ist der Talt von USART 3 500000kHz (wegen parallelem Test mi 
Timer)

Soweit ich verstanden habe müsse BRR Register = Takt von USART / 
Baudrate sein.


Nach Rechnung: 500000 / 2400 = 208.3333333
Im BRR Register steht: 208

Ist die Abweichung um 1/3 Ursache für das Problem und wie muß ich hier 
vorgehen ?

Gruß Marc

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.