前言-关于串口仿真的坑
最近为了完成作业使用了Proteus仿真STM32,在串口使用中遇到了各种问题,比如输出HEX为00 00 00(空值)、或者是输出乱码、参数匹配、时钟等;参考很多文章,发现可能对于解决问题没有一个较为全面的思路,因此写下这篇避坑指南。
出现的异常情况
第一步:
你需要确认你的仿真串口接线是否合乎规范
单片机接口RX匹配COMPIM的RX、TX匹配COMPIM的TX。
第二步:
确认你的程序能够成功匹配(包括仿真软件波特率和程序设定等),使得串口调试助手能接收到信号。
如图
接着你会遇到的错误可能是两种
1.串口发送HEX 00 00 00 00.......
2.串口发送乱码
情况一 解决方法
在你的程序代码中加入一个时钟初始化(仿真与实物操作的区别)
不懂如何添加直接放在main() 主函数里面
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
如果还是出现情况二乱码
情况二 解决办法
首先确认你的仿真芯片的工作频率,例如我设置(8M)
需要严格匹配STM32F10x.h头文件的HSI_VALUE的数值,
如图
如果以上仍不能解决,可以尝试调整外部晶振频率8Mhz,12Mhz......
最后成功解决问题
如果我的文章能帮助你解决问题,请给我点赞、收藏、关注,谢谢!