使用新版的固件库设置串口波特率,设置9600,结果却是4800
看库文件源代码发现USART_Init中多了一个条件判断,
大家小心啦!
回楼上,
这个可以确定跟硬件没有关系,纯粹是软件的事,
在Keil下用软仿就可以验证,设置完成后在Keil的串口控件中可以看到结果
现在我不太确定是不是有关新版的固件库有什么注意事项我不知道,所以提醒大家一下喽
回楼上,
这个可以确定跟硬件没有关系,纯粹是软件的事,
在Keil下用软仿就可以验证,设置完成后在Keil的串口控件中可以看到结果
现在我不太确定是不是有关新版的固件库有什么注意事项我不知道,所以提醒大家一下喽 ...
为什么说跟硬件没有关系?
你能保证Keil下软仿时使用的设置与硬件是一致的吗?
现在上网的机器里没有这些资料,香版主看一下3.0.2版固件库的USART_Init与2.0.0版的,会发现设置波特率寄存器的代码不一样,多了一个条件,没有找到有关这个条件的说明,可能是用于USART4、5的,
另外,我的板子使用8MHZ晶振,与Keil的设置一致,PLL设置24MHZ,最早是软件仿真时偶然发现USART控件的波特率显示4800BPS,与我设置的9600BPS不符,检查过程序没有发现问题,接到硬件上试了一下,果然是4800BPS,
现在我的办法是使用调用USART_Init以后,再加一句USART1->B?? = 24000000/9600绕过了这个问题
补充说明,我使用的芯片型号,STM32F103RBT6