波特率是什么 波特率是什么单位

大家好,关于波特率是什么很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于波特率是什么单位的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。在我们学习单片机的时候,经常会看到波特率这个词,它的作用是什么样的呢?今天我来告诉你。

1.什么是波特率

不管是任何单片机,在使用串口通信的时候,有一个非常重要的参数,那就是波特率。波特率实际上就是每秒传输的字节数。双方在传输数据的过程中,要想通讯成功首先要保证的是波特率一致。

2.STM32波特率相关的寄存器

STM32单片机与波特率相关的寄存器只有一个:USART_BRR寄存器,这个寄存器的有效位数为16位,前4位的作用是存放小数部分,后12位的作用是存放整数部分。

3.波特率计算方法

STM32的数据手册给出了波特率的具体计算方法,它有一个完整的公式,在这个公式上,共有三个变量,其中两个我们是知道的,Fck和Tx/Rx波特率这两个是已知的,USARTDIV是未知的。通过该公式的描述可以看出如果使用USART1的话,那Fck就是PCLK2=72MHz,否则就是PCLK1=36MHz,Tx/Rx波特率这个参数是已知的。那么我们对应的只需要计算出USARTDIV的值赋值给USART_BRR寄存器就可以实现通信成功了。以115200为例,将公式变形后得到:USARTDIV=72×1000000/(16×115200)=39.0625。即将39.0625写入USART_BRR就完成了我们的波特率设置。

前面我们有说过,USART_BRR的前4位存放小数部分,后12位存放整数部分。

那小数部分DIV_Fraction=0.0625×16=1=0x01;

那整数部分DIV_Mantissa=39=0x27;

那USART_BRR=0X271;

数据手册给关于波特率部分有一张数据表:在这张数据表上,已经算出了常用的波特率值,我们可以拿来直接用。

本期先分享到这里,想要进群学习单片机编程的同学可以私信我,回复“我要入门”,与我们一起成长,喜欢的可以点个赞关注我们!

关于波特率是什么的内容到此结束,希望对大家有所帮助。