485多机通信出现的怪问题

2020-02-04 09:06发布

做了个485通信板,七个U,专用于做实验用。485采用的自动收发电路,也就是只发0,1装上下拉电阻完成的那种。硬件很简单。但在实验中出现怪现象,即系统开机后,主机与分机能通信,但不通信的分机即只能接收到一个正确的数据,就是第一个地址码。而后面的数据码全出错。按理应该不会产生的串口中断,也产生了。通信协议最后有一条复位命令,是发给所有从机的。但除通信的从机能正确收到,其它从机收到的全是错误的数据。百思不得其解。不知各位是否也遇上过类似问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
BDXing6
2020-02-05 20:08
系统再次发生接收错误,不过这次出现在总线竞争,第一个争得总线的发送正确后,第二个总线控制发出的地址码,被呼叫从机不能识别,不过有了前面的分析,问题解决得也快了。原因在于:前面提到的RI中断时序有错误,其实原资料文字描述是停止位发送一半时产生,但实际并非如此,仔细看图二最后一行RI时序就不难发现,RI的中断是在发送TB8的一半时就发生了,整整比文字描述提前了一个波特率位,9600时超过了100us,看来,资料的作者估计也是看错了。据此再次修改参数,多机竞争也未再发生错误。特此更正!

一周热门 更多>