最近遇到的单片机串口设置问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最近遇到的单片机串口设置问题

最近测试涉及到底层串口代码的修改。经过这次修改,突然发现其实自己

对于串口的一些特性以前并不是十分清楚。

首先遇到的一些问题:

1)在使用IO 的数据位的时候,没有考虑校验位所占的位数。

2)在设置串口输入的时候,使用悬空输入。

关于1),在一次使用STM32 串口参数9600,N,8,1 与另一个8051MCU 通信的时候发现偶校验没有问题,但是无校验通信就出现异常。但是,当将STM32 与电脑通信的时候,偶校验与无校验通信又完全都是正确的。8051MCU 单独

与电脑通信也都是完全正确的。查看代码,还真不知道有什么不对劲的。因为

这段代码,用了很长时间了。后来一个同事看代码后,提醒说对于数据位的设置,偶校验和无校验是一致的,既然没有数据位,有可能会少一位。从这点看,这段代码可以修改看看。于是在这个地方,将偶校验的时候数据位长度设置为

9bit,无校验的时候设置为8bit。重新测试,发现通信正常了。

原来这段代码,由于一直用偶校验进行通信,所以对于奇校验和无校验的参

数设置,没有测试过。虽然,已经存在很长时间,但是由于一直没有用到奇校

验和无校验,于是这个BUG。一直潜伏到现在。直到这次使用到才发现。

关于2),是在一次使用中发现,串口线的连接如果与从机分离,则串口上会

莫名接收到一些00 数据。一开始没有在意,以为是离开确定电平后,导致的

什么干扰造成的。但是,没有去考虑是什么造成接收这么容易受干扰。直到有

一次,和同事确认串口的初始化电平设置时,他告诉说是悬空设置。这下子感

觉不对了,悬空很容易造成受干扰。于是马上查看串口的初始化代码,发现确

实是悬空设置。马上修改了。在测试,将连接的串口悬空,也没有再收到。

相关文档
最新文档