做了个485通信板,七个U,专用于做实验用。485采用的自动收发电路,也就是只发0,1装上下拉电阻完成的那种。硬件很简单。但在实验中出现怪现象,即系统开机后,主机与分机能通信,但不通信的分机即只能接收到一个正确的数据,就是第一个地址码。而后面的数据码全出错。按理应该不会产生的串口中断,也产生了。通信协议最后有一条复位命令,是发给所有从机的。但除通信的从机能正确收到,其它从机收到的全是错误的数据。百思不得其解。不知各位是否也遇上过类似问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
在接收数据时,TX为1,三级管截止,485处于接收状态,总线数据送入RX。
发送时,当TX为0时,三级管导通,485在发送状态,同时,TX送入D输入端。TX为1时,三级管截止,485在接收状态,但AB的上下拉使得总线上为1。以此来自动切换485的收发
其实,硬件的问题应该不大,因为,网络上几个节点均可正常通信(说明软件也应该是没有问题的),问题在于,只有通信的节点机能正常接收数据,而没有通信的即接收的是错误的数据。想不明白。
一周热门 更多>