STM32串口通信中遇到有规律的乱码
(1)程序中,向量中断控制器的初始化配置
本文引用地址:https://www.eepw.com.cn/article/201611/318085.htm(2)电脑硬件串口设置
(3)串口调试助手
这个配置好了之后,串口调试助手显示的收发还是和预期的不一样,不够程序收发数据变得有规律了。如图:
发送a收到q,发送b显示r(图中未显示),从a到q正好相差16位。而如果发送汉字的话,还是显示乱码。
这中间尝试了很多办法,也调试了好几天,依然无果。于是我找来开发板配套的源程序设置(源程序的代码可以运行,其他的任何代码都会乱码),一一对照,之前以为是程序问题。然后我加了stm32的群(118342902),群里的大神看了程序给了一句肯定的话说程序没有问题。
其中群主说正好相差16位,说明的最高位的问题。然后我又将源程序的所有设置重新检查了一遍。最后发现,,,
之前是用的括号里的STM32F10X_MD的启动文件,之后换成STM32F10X_CL之后,一切正常了。
我使用的是107vc的芯片,启动文件的设置导致了高位硬性置位。详细的分析待有时间在说。
下面把程序贴上。
main函数:
中断函数
这个程序应该是最简单的测试程序了。由于keil的能力有限,源代码不能直接贴上来,只能用图片的形式上传上来,不过也没几行代码。
评论