常用功能

分类

链接已复制好,马上发给小伙伴吧~
下载App

添加客服微信咨询

请问串口波特率计算DIV_Fraction为什么要把小数*16?

串口波特率的计算涉及到DIV整数和DIV小数两部分。其中DIV整数是波特率发生器的计数器的整数部分,DIV小数是计数器的小数部分。在计算DIV_Fraction时,通常会将小数部分乘以16,这是因为波特率发生器的计数器通常是一个16位的计数器,将小数部分乘以16相当于将小数部分转换为对应的二进制表示,并且占满计数器的小数位。

举例说明,如果波特率发生器的计数器是一个16位的计数器,而DIV_Fraction的小数部分是0.5,那么将小数部分乘以16就得到8,即0000 1000(二进制表示)。这样就可以将小数部分表示在计数器的小数位上,以实现精确的波特率控制

如果不将小数部分乘以16,而是直接用小数部分的整数表示,那么就无法充分利用计数器的小数位,从而无法实现精确的波特率控制。

因此,将小数部分乘以16是为了将小数部分转换为对应的二进制表示,并且充分利用计数器的小数位,以实现精确的波特率控制。