微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > stm32 做modbus通讯协议时,当主机给一个从机发信息,其他从机也会收到这条消息吗

stm32 做modbus通讯协议时,当主机给一个从机发信息,其他从机也会收到这条消息吗

时间:10-02 整理:3721RD 点击:
stm32 做modbus通讯协议时,当主机给一个从机发信息,其他从机也会收到这条消息吗

会同时收到这帧数据,但是每个从机,会判断自己的地址和主机发送的地址是否相同,如果相同则接受功能位和数据位并进行CRC校验,否则放弃。

多谢,是做过实验确认每个从机都收到信息了  还是在什么的地方见到过

当发送00地址时全部都能收到,否则就是发的那个地址,相应的从机作出回应,

你这个和1楼的有点矛盾,当发00时,所有的主机都能收到  ,发其他地址时,应该是只有对应从机能响应,但是其他从机不响应,并不代表没有接受到数据,只是地址不对没响应而已,不知道我的理解对不对。

感谢小编分享!

小编可否分享一下程序源码参考一下。

无论怎么定协议,物理特性上都决定了每一个从机都会收到主机发送的数据,协议可以帮助确定哪些数据需要哪个从机响应,不需要响应的就按兵不动就OK了

有程序可以给我参考下嘛,大神

  1. if ((buf[0] == 0XAA)&&(buf[3] == Slave_Reg.regSlave[1]))//核对帧头和地址
  2.     {
  3.       crc = GetCRC16(buf, 1+buf[2]);
  4.       crch = crc >> 8;
  5.       crcl = crc & 0xFF;
  6.       if ((buf[len-2] == crch) && (buf[len-1] == crcl))
  7.       {

复制代码


大概意思就是这样的。我这个不是标准的Modbus。

就像你像一群人喊一个人的名字一样,所有的人都听到了你喊的名字,但只有你喊的那个人才会答应。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top