微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32串口通信中遇到有规律的乱码

STM32串口通信中遇到有规律的乱码

时间:11-19 来源:互联网 点击:
这几天学习调试串口通信,一连好几天串口收发的都是乱码。之前的乱码毫无规律,发现是串口硬件没有配置好,此处的配置有三处。

(1)程序中,向量中断控制器的初始化配置

(2)电脑硬件串口设置

(3)串口调试助手

这个配置好了之后,串口调试助手显示的收发还是和预期的不一样,不够程序收发数据变得有规律了。如图:

发送a收到q,发送b显示r(图中未显示),从a到q正好相差16位。而如果发送汉字的话,还是显示乱码。

这中间尝试了很多办法,也调试了好几天,依然无果。于是我找来开发板配套的源程序设置(源程序的代码可以运行,其他的任何代码都会乱码),一一对照,之前以为是程序问题。然后我加了stm32的群(118342902),群里的大神看了程序给了一句肯定的话说程序没有问题。

其中群主说正好相差16位,说明的最高位的问题。然后我又将源程序的所有设置重新检查了一遍。最后发现,,,

之前是用的括号里的STM32F10X_MD的启动文件,之后换成STM32F10X_CL之后,一切正常了。

我使用的是107vc的芯片,启动文件的设置导致了高位硬性置位。详细的分析待有时间在说。

下面把程序贴上。

main函数:

中断函数

这个程序应该是最简单的测试程序了。由于keil的能力有限,源代码不能直接贴上来,只能用图片的形式上传上来,不过也没几行代码。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top