小弟最近遇到一个问题,主机A与8个从机485通信,但是出现一个问题,主机发送数据的时候,主机的232数据没有问题(232和485同时连接到MCU串口),但是485总线数据数据出现丢失混乱的现象,并且收尾数据都正确,中间出现了问题。最开始以为是485收发使能信号有问题,最终做了一个测试程序,发现最终问题不是这个,问题是程序的分时的时间基准为250US,改为1MS就解决啦,虽然问题找见啦,但是怎样影响的,实质还是没有解决,求大神帮忙。
485总线方向切换后要有个稳定时间,不能立刻发送。该时间取1ms即可。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
但是我做了一个测试程序,只发送数据,发送使能端始终有效,还是会出现中间数据丢失的情况。
上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
还有一个就是协议处理的问题了。我前两天也做485通讯,中间也有短的,情况跟楼主的类似,延时长一些就会好,最终发现是发送过程中缓冲区溢出导致的,协议处理上没有对这个做限制,从而发错了也不知道。
说到485我有一个收发自适应的电路,好像在论坛里贴出来过,感兴趣的话可以看看哦。可以免去控制线
数据缓冲区溢出,是值得是SBUF吗,我要发送的数据时存储在数组里面的,应该没有溢出,并且发送数据是前一个数据发送完成以后,TI =1 之后再发送的数据。大神能否给个详细的说明,让小弟也多学习学习。
时间片得根据整个系统的时间开销来找出最小值。不能太小,俺一般都用5ms以上的。
最好是对不同的任务分个优先级。
我的处理方式跟你不太一样,我的是收到数后先放到一个buffer里面。等我 需要的时候再去取数处理,这样就存在溢出的问题了。还有就是波特率较高的话中断也可能处理不过来。你这个应该不存在这个情况。