标题:
分析modebus485通讯,最后一桢数据错误
[打印本页]
作者:
3lian
时间:
2014-2-26 18:33
标题:
分析modebus485通讯,最后一桢数据错误
1、51单片机,modebus485通讯数据直接发送到端口附近的移位寄存器
2、avr,stm32单片机,数据会先写入缓存,就是一级缓存,待端口附近移位寄存器空了才会将一级缓存放入移位寄存器,也就是二级缓存。这样就有两个标志:一个是一级缓存空,你可以写入数据;一个是二级缓存空,你可以发现发送完成。这样到底哪一次才是真的发送完就很明了。
3、很多时候会表现为发送和接受切换不及时引起,的确也是。但把握好何时才是真的数据发送完毕,应该也是可以解决,毕竟硬件电路上的传输十分迅速。但若真是这样的,发送接受切换时间不对,下策就是延时,稍微好点可以在前后加入几个干扰较小的数据。最好的听说有linux的delaywork方法,暂时不知是什么。
4、当stm32用fsmc来读取16c554,16c554通过串口连接数据,这样的系统也是通讯的最后发现数据错误,但是接下来一组数据开头一个错误。在16c554之前通讯数据对,而16c554接受错误,或者fsmc错误,而一旦错误就会反复出现,时好时坏,奇怪哉。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1