微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > Tx/Rx波特率=fpclkx/(16*USARTDIV),为啥要除16呢?在将小数部分转...

Tx/Rx波特率=fpclkx/(16*USARTDIV),为啥要除16呢?在将小数部分转...

时间:10-02 整理:3721RD 点击:
Cortex-M3的USART中,Tx/Rx波特率=fpclkx/(16*USARTdiv),为啥要除16呢?在将小数部分转换的时候为啥要乘16

16代表AHB的分频 跟stm32自身寄存器的配置的特性有关,查查stm32的帮助手册

因为串口系统是以16倍波特率的时钟工作;
小数部分乘16是为了用小数部分参加分频,但浮点数的小数部分是不能直接作为分频因子使用的,所以要乘16;
实际上可以将串口系统看成是以和波特率相同的时钟工作,就可以直接用整数计算了;具体理由请童鞋自己思考

楼上正解

谢谢讲解,很受启发。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top