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;
实际上可以将串口系统看成是以和波特率相同的时钟工作,就可以直接用整数计算了;具体理由请童鞋自己思考
楼上正解
谢谢讲解,很受启发。