Hallo Leute, ich habe den UART des STM32F407VG in Betrieb genommen. Ich habe eine theoretische Frage: Man kann beim Uart den Prescaler für die Baudrate über eine Floatzahl einstellen. wie funktioniert das (also in Hardware), dass man z.B. 1MHz duch 1,75 teilt. Vielen Dank
>Man kann beim Uart den Prescaler für die Baudrate über eine Floatzahl >einstellen. wie funktioniert das (also in Hardware), dass man z.B. 1MHz >duch 1,75 teilt. Das kann man nicht. Wie kommst du darauf?
"I daresay you haven't had much practice," said the Queen. "When I was your age, I always did it for half-an-hour a day. Why, sometimes I've believed as many as six impossible things before breakfast." (Lewis Carroll) Ich glaube, ST "missbraucht" den sowieso vorhandenen 16:1 Teiler und schaltet ihn auf 28:1 um (z.B., um auf 1.75 zu kommen). Für den TX-Takt geht das ohne weiteres, der ist ja normal das 16-fache der Baudrate. Der Empfänger braucht etwas mehr Aufwand, er tastet jedes Bit normalerweise 3 Mal ab, jeweils beim Zählerstand 8,9 und 10 des Vorteilers. An der Stelle hat ST wahrscheinlich einen Multiplexer und etwas Logik spendiert. Float point braucht man dafür nicht. Die Bits im BRR sind so praktisch angelegt, dass man den APB-Takt einfach durch die Baudrate teilen kann. Runden sollte man schon noch, aber alles darf (int) sein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.