打印
[STM32F1]

stm32关于modbus通讯的问题

[复制链接]
1295|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pengf|  楼主 | 2021-10-11 22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32 做modbus通讯协议时,当主机给一个从机发信息,其他从机也会收到这条消息吗

使用特权

评论回复
沙发
dengdc| | 2021-10-11 22:27 | 只看该作者
应该会收到,但是地址不一样这个报文就丢弃了

使用特权

评论回复
板凳
zhenykun| | 2021-10-11 22:29 | 只看该作者
会同时收到这帧数据,但是每个从机,会判断自己的地址和主机发送的地址是否相同

使用特权

评论回复
地板
songqian17| | 2021-10-11 22:31 | 只看该作者
如果相同则接受功能位和数据位并进行CRC校验,否则放弃

使用特权

评论回复
5
jlyuan| | 2021-10-11 22:33 | 只看该作者
是做过实验确认每个从机都收到信息了  还是在什么的地方见到过

使用特权

评论回复
6
heweibig| | 2021-10-11 22:35 | 只看该作者
当发送00地址时全部都能收到,否则就是发的那个地址,相应的从机作出回应

使用特权

评论回复
7
llljh| | 2021-10-11 22:41 | 只看该作者
当发00时,所有的主机都能收到  ,发其他地址时,应该是只有对应从机能响应,但是其他从机不响应,并不代表没有接受到数据,只是地址不对没响应而已,不知道我的理解对不对。

使用特权

评论回复
8
stly| | 2021-10-11 22:43 | 只看该作者
可否分享一下程序源码参考一下

使用特权

评论回复
9
renyaq| | 2021-10-11 22:45 | 只看该作者
无论怎么定协议,物理特性上都决定了每一个从机都会收到主机发送的数据,协议可以帮助确定哪些数据需要哪个从机响应,不需要响应的就按兵不动就OK了

使用特权

评论回复
10
zwll| | 2021-10-11 22:47 | 只看该作者

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))
      {

使用特权

评论回复
11
dengdc| | 2021-10-11 22:49 | 只看该作者
物理通信链路上,总线上的设备可以收到所有其他设备发送的数据,只是软件选择是否处理而已

使用特权

评论回复
12
jiajs| | 2021-10-11 22:51 | 只看该作者
其他从机也肯定会接收到主机发来了请求报文,这就是为什么请求报文里面会有个设备地址,从机收到不是自己设备地址的请求报文时是不会返回响应的。

使用特权

评论回复
13
tian111| | 2021-10-11 22:54 | 只看该作者
从机肯定可以收到数据,只是数据收到后,从机是有地址的,当收到的地址和从机本身的地址不一样,就将该帧数据丢弃。

使用特权

评论回复
14
heweibig| | 2021-10-11 22:55 | 只看该作者
modbus是不是就是485

使用特权

评论回复
15
huanghuac| | 2021-10-11 22:57 | 只看该作者
会受到 但是如果地址不对的话 他就自己丢掉

使用特权

评论回复
16
pengf|  楼主 | 2021-10-11 23:05 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
17
heimaojingzhang| | 2021-11-3 13:23 | 只看该作者
485是不会的

使用特权

评论回复
18
木木guainv| | 2021-11-3 13:28 | 只看该作者
不会的吧 应该有各自的地址啊

使用特权

评论回复
19
tpgf| | 2021-11-3 13:30 | 只看该作者
需要各自设置一下地址

使用特权

评论回复
20
keaibukelian| | 2021-11-3 13:34 | 只看该作者
modbus应该不会乱套的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝