stm32 做modbus通讯协议时,当主机给一个从机发信息,其他从机也会收到这条消息吗
时间:10-02
整理:3721RD
点击:
stm32 做modbus通讯协议时,当主机给一个从机发信息,其他从机也会收到这条消息吗
大概意思就是这样的。我这个不是标准的Modbus。
会同时收到这帧数据,但是每个从机,会判断自己的地址和主机发送的地址是否相同,如果相同则接受功能位和数据位并进行CRC校验,否则放弃。
多谢,是做过实验确认每个从机都收到信息了 还是在什么的地方见到过
当发送00地址时全部都能收到,否则就是发的那个地址,相应的从机作出回应,
你这个和1楼的有点矛盾,当发00时,所有的主机都能收到 ,发其他地址时,应该是只有对应从机能响应,但是其他从机不响应,并不代表没有接受到数据,只是地址不对没响应而已,不知道我的理解对不对。
感谢小编分享!
小编可否分享一下程序源码参考一下。
无论怎么定协议,物理特性上都决定了每一个从机都会收到主机发送的数据,协议可以帮助确定哪些数据需要哪个从机响应,不需要响应的就按兵不动就OK了
有程序可以给我参考下嘛,大神
- if ((buf[0] == 0XAA)&&(buf[3] == Slave_Reg.regSlave[1]))//核对帧头和地址
- {
- crc = GetCRC16(buf, 1+buf[2]);
- crch = crc >> 8;
- crcl = crc & 0xFF;
- if ((buf[len-2] == crch) && (buf[len-1] == crcl))
- {
大概意思就是这样的。我这个不是标准的Modbus。
就像你像一群人喊一个人的名字一样,所有的人都听到了你喊的名字,但只有你喊的那个人才会答应。