写在前面:
欢迎所有人给我提出任何意见和建议
如果有帮助的可以在下方评论写几个字
谢谢!
简述一下问题:
我芯片STM32F105VC,串口UART5,设置波特率9600如图,但是在串口调试助手中,设置的波特率9600是乱码
经过测试,如果波特率设置为28800则可以正常显示,也就是说比调试多出3倍。
原因:
在stm32f10x.h中,设置了时钟频率如下图,因为我定义STM32F10X_CL也就是25MHz,但是实际电路中,接的晶振是8MHz,所以应该将25MHz改为8MHz
其他可能原因:
- 查一下system_stm32f10x.c文件是否包含进你的项目里,如果没有包含进去的话,编译器会调用编译器自己的。
- 如果有,检查一下是否调用systemInit()。
- 再三查看一下你的系统时钟频率对不对,stm32时钟相关的资料推荐看这里