485多机通信出现的怪问题

2020-02-04 09:06发布

做了个485通信板,七个U,专用于做实验用。485采用的自动收发电路,也就是只发0,1装上下拉电阻完成的那种。硬件很简单。但在实验中出现怪现象,即系统开机后,主机与分机能通信,但不通信的分机即只能接收到一个正确的数据,就是第一个地址码。而后面的数据码全出错。按理应该不会产生的串口中断,也产生了。通信协议最后有一条复位命令,是发给所有从机的。但除通信的从机能正确收到,其它从机收到的全是错误的数据。百思不得其解。不知各位是否也遇上过类似问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
BDXing6
2020-02-06 04:59
从分析的结果来看,加不加延时应该根据情况来处理。其中包括:
数据处理时间,一般应用应该是没有什么问题,传输一个字节就得1ms多的时间,对于22M系统来说,就可执行几千条指令.处理时间应该是够了
第二是系统,如果是双机通信,没必要加。要是多机通信,又要求各从机都能获取应获的数据,则在接收到数据后的应答要加1.5个波特率位的时间,连续发送的话不用加。
我就是在回复数据时延时160us再发送的回复,并且不是采用的延时,而是定时中断发送。这样不会浪费系统资源。

一周热门 更多>