RM0008
Fraction (USARTDIV) = 12/16 = 0.75d
Therefore USARTDIV = 27.75d
Example 2:
To program USARTDIV = 25.62d,
This leads to:
DIV_Fraction = 16*0.62d = 9.92d, nearest real number 10d = 0xA
DIV_Mantissa = mantissa (25.620d) = 25d = 0x19
Then, USART_BRR = 0x19A
Example 3:
To program USARTDIV = 50.99d
This leads to:
DIV_Fraction = 16*0.99d = 15.84d => nearest real number, 16d = 0x10
DIV_Mantissa = mantissa (50.990d) = 50d = 0x32
Note:
The Baud Counters will be updated with the new value of the Baud Registers after a write to
USART_BRR. Hence the Baud Rate Register value should not be changed during a
transaction.
Table 67.
Baud rate
in
S.No
Kbps
1.
2.4
2.
9.6
3.
19.2
4.
57.6
5.
115.2 115.384
6.
230.4 230.769
7.
460.8 461.538
8.
921.6 923.076
9.
2250
10.
4500
Universal synchronous asynchronous receiver transmitter (USART)
Error calculation for programmed baud rates
f
= 36 MHz
PCLK
Value
programmed
Actual
in the Baud
Rate
Register
2.400
937.5
9.600
234.375
19.2
117.1875
57.6
39.0625
19.5
9.75
4.875
2.4375
2250
1
NA
NA
% Error
=(Calculated -
Actual
Desired)B.Rate
/Desired B.Rate
0%
2.4
0%
9.6
0%
19.2
0%
57.6
0.15%
115.2
0.16%
230.769 19.5
0.16%
461.538 9.75
0.16%
923.076 4.875
0%
2250
NA
4500
f
= 72 MHz
PCLK
Value
programmed in
% Error
the Baud Rate
Register
1875
0%
468.75
0%
234.375
0%
78.125
0.%
39.0625
0%
0.16%
0.16%
0.16%
2
0%
1
0%
441/501
Need help?
Do you have a question about the STM32F101 Series and is the answer not in the manual?