串口通信(5)

  • 主题发起人 lengyan69
  • 开始时间
L

lengyan69

Unregistered / Unconfirmed
GUEST, unregistred user!
是目标板不加电下,不发数据却收到一些奇怪数据,加电却正常
 
管它正常不正常,如果没有收到你规定的标志字符,就不是,例如收到开头必须为'FS'的才是你的数据,然后在加上校验既可判断数据是否正确!
 
我的意思是在单片机不加电情况下,打开串口,MEMO控件上收到一些奇怪数据,加电后,再打开串口,则一切正常,网友说是干扰
 
是不是你在打开串口前就在串口缓冲区有数据了,你应该在打开串口后清空接收和发生的缓冲区。
 
先加电就正常,我也没清空缓冲区啊
 
先学点硬件知识吧按你的描述,你的上下位机应该是采用了RS-485半双工问答方式通讯的,那么在你的下位机没上电以前,由于保护嵌位二极管的存在,等于把通讯总线拉死了,也就是说这时候的差分检测器(主机端的 RS-232 <-> RS485 转换器上的双绞线输入口)将呈现不稳定的状态(RS-422/485 对总线的定义是:A-B≥200mV为逻辑“1”,B-A≥200mV为逻辑“0”,A-B=0事实上是一种临界状态),既然不稳定,判别电路(通常是SN75176或MAX1487等)将容易产生错误判别,逻辑输出会在“1”和“0”之间跳动,从而使串行口产生了错误的起始位,于是就有了错误的帧;解决很简单,只需要用两个电阻(约100K)分别把A线(也称D+)接正、B线(也称D-)接负(或“地”)即可。
 
顶部