RS485连接多个设备时,的通信

用RS232转485,控制多个设备,当主机通过串口发送数据后。数据存在缓冲区,被设备哪个设备取走呢?我知道设备是通过id区分是不是发给自己的,要是接收了不是发给自己的信息,缓冲区内没有数据,别的设备不就接收不到了吗? 同理,主机读数据时也有同样的疑问,如果两台设备的反馈报文长度不一样,怎么办。 或者,是485只能连接多个反馈报文长度相同的设备。 请高人指点。

第1个回答  2020-06-11
485通信是没有缓冲的啊,主机向下发送数据,是以广播形式发送的,下面的从设备都接收到数据,对比数据中的ID号,对应上了,回应相关指令,不是自己的ID号,直接丢弃数据。
主机控制一切,发送指令,等下位机反馈指令,在设定的时间内没有得到反馈,就一直等待,如果超过设定时间,继续发送指令或者执行下一个指令,这个好像和反馈报文长度关系不大啊。主要是看你主机软件的设计啊。
第2个回答  2019-08-06
一般串口多机通讯都是采用问答式的通讯形式,主机向下位机发送命令数据,每个下位机都接到命令,然后下位机进行命令判断,比如是针对某一机号(地址)的从机的读取命令,则该从机返回相应命令,其他从机则无返回;rs232转rs485只是将数据处理,与通讯原理没多大关系
第3个回答  2019-04-07
你是先接收完了
在判断这个数据是不是你需要
还是先判断这个是不是你需要的地址在接收呢
每个单片机都又自己的固定的地址
要是接收了不是你的信息
你就把接收缓冲去地址清0
把485置为发送就行了
这是属于错误处理
至于反馈报文长度
这就需要主机与单片机之间协定好通信协议
只要按照这个协议
双方就可以通信了
相似回答
大家正在搜