大家小心,STM32新版固件库(V3.2.0)设置波特率出问题了

forgetful   2010-4-9 13:05 楼主
使用新版的固件库设置串口波特率,设置9600,结果却是4800
看库文件源代码发现USART_Init中多了一个条件判断,
大家小心啦!

回复评论 (6)

                                 你使用的外部晶振是多少?
点赞  2010-4-9 13:09
回楼上,
这个可以确定跟硬件没有关系,纯粹是软件的事,
在Keil下用软仿就可以验证,设置完成后在Keil的串口控件中可以看到结果

现在我不太确定是不是有关新版的固件库有什么注意事项我不知道,所以提醒大家一下喽
点赞  2010-4-9 13:28
                                 你先回答我的问题
点赞  2010-4-9 13:34
回楼上,
这个可以确定跟硬件没有关系,纯粹是软件的事,
在Keil下用软仿就可以验证,设置完成后在Keil的串口控件中可以看到结果

现在我不太确定是不是有关新版的固件库有什么注意事项我不知道,所以提醒大家一下喽 ...
为什么说跟硬件没有关系?

你能保证Keil下软仿时使用的设置与硬件是一致的吗?
点赞  2010-4-9 17:07
现在上网的机器里没有这些资料,香版主看一下3.0.2版固件库的USART_Init与2.0.0版的,会发现设置波特率寄存器的代码不一样,多了一个条件,没有找到有关这个条件的说明,可能是用于USART4、5的,
另外,我的板子使用8MHZ晶振,与Keil的设置一致,PLL设置24MHZ,最早是软件仿真时偶然发现USART控件的波特率显示4800BPS,与我设置的9600BPS不符,检查过程序没有发现问题,接到硬件上试了一下,果然是4800BPS,

现在我的办法是使用调用USART_Init以后,再加一句USART1->B?? = 24000000/9600绕过了这个问题
点赞  2010-4-9 21:06
                                 补充说明,我使用的芯片型号,STM32F103RBT6
点赞  2010-4-9 21:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复