CUBEMX生成F4的代码波特率计算USARTDIV错误

原问题链接
http://www.stm32cube.com/quest ... 3D593,598#!answer_598
经过反复调试,目前确定问题为cube生成的代码里分频计算错误。

QQ图片20150810093802.jpg


PCLK2为84M,设置波特率为115200,手册上为USARTDIV为45.5625。而生成的代码运行完后BRR为49.3。
我将程序断点在usart发送前,然后人工修改寄存器USART->BRR到45.6,得到了正确的结果。
QQ图片20150810094834.jpg

已邀请:

百战天虫

赞同来自: admin

QQ图片20150810095037.jpg

补充结果

admin

赞同来自:

我一般时钟都是除以外部时钟的相同值,这样好计算,额,没遇到楼主说的问题
楼主8M晶振为什么要除以25呢?

要回复问题请先登录注册