打印
[应用相关]

关于USART中Tx/Rx波特率计算

[复制链接]
999|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lefeng|  楼主 | 2016-6-15 19:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Cortex-M3的USART中,Tx/Rx波特率=fpclkx/(16*USARTDIV),为啥要除16呢?在将小数部分转换的时候为啥要乘16
沙发
拉克丝| | 2016-6-15 20:08 | 只看该作者
因为串口系统是以16倍波特率的时钟工作;
小数部分乘16是为了用小数部分参加分频,

使用特权

评论回复
板凳
Snow7| | 2016-6-15 20:21 | 只看该作者
16代表AHB的分频 跟stm32自身寄存器的配置的特性有关,查查stm32的帮助手册

使用特权

评论回复
地板
戈卫东| | 2016-6-15 20:31 | 只看该作者
直接 BRR = PCLK / BPS 就可以
无视那个16一点问题都没有

使用特权

评论回复
5
米尔豪斯| | 2016-6-15 20:36 | 只看该作者
浮点数的小数部分是不能直接作为分频因子使用的,所以要乘16

使用特权

评论回复
6
豆腐块| | 2016-6-15 21:17 | 只看该作者
实际上可以将串口系统看成是以和波特率相同的时钟工作,就可以直接用整数计算了

使用特权

评论回复
7
309030106| | 2016-6-15 21:40 | 只看该作者
查查stm32的帮助手册,应该是跟stm32自身寄存器的配置的特性有关

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

200

主题

1087

帖子

0

粉丝