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

STM32串口通信

      这几天学习调试串口通信,一连好几天串口收发的都是乱码。之前的乱码毫无规律,发现是串口硬件没有配置好,此处的配置有三处。

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

(2)电脑硬件串口设置

(3)串口调试助手

 

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

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

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

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

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

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

 

下面把程序贴上。

main函数:

中断函数

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

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值