波特率寄存器:USART_BRR

串口的时钟源:fck

串口的时钟源fck进行分频的系数:USARTDIV

USART 1的时钟来源于APB2

USART 2-5的时钟来源于APB1

STM32波特率寄存器USART_BRR,如下:

 

 

 

 知道了波特率fck时钟频率的大小,那么通过上式便可以计算出USARTDIV的具体大小,然后再通过USART的值大小对波特率寄存器进行设置。

 将整数部分m(27 = 0x1B)直接写入USART_BRR的后12位部分;将小数部分n乘以16后得到的整数值(如0.75 x 16 = 12 = 0xC)写入USART_BRR前4位部分,最后USART_BRR的值为0x1BC。

在数据的传输中,信号可能受到一些干扰而产生一些抖动,如下图。如果接收端只对这些信号数据采样一次,那么它有可能采样到的是抖动的不准的数据,进而使数据传输不准确,

所以接收端在采样数据线上的数据,通常都要采样多次,然后通过比较获得准确的数据。

所以为什么在计算波特率的公式中要乘以16。

 

posted on 2020-10-14 11:11  aiziyou  阅读(214)  评论(0)    收藏  举报