找回密码
 立即注册
楼主: 电子DIY小家

ModBus_RTU(4组串口任选+DMA传输的主从机)的lib库使用,STC32实现

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:482
  • 最近打卡:2025-05-01 07:56:03
已绑定手机

1

主题

54

回帖

2351

积分

金牌会员

积分
2351
发表于 2024-1-2 22:22:54 | 显示全部楼层
楼主,能发一下MODBUS调试助手软件吗?谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:413
  • 最近打卡:2025-05-01 08:31:52

5

主题

296

回帖

2030

积分

金牌会员

积分
2030
发表于 2024-1-2 23:40:27 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-05-01 08:38:15

12

主题

110

回帖

1072

积分

金牌会员

积分
1072
发表于 2024-1-12 21:37:11 | 显示全部楼层
查阅了下网上的资料,有个free modbus的开源库,据说比较稳定,大佬可以移植到STC让大家拿来即用
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:431
  • 最近打卡:2025-05-01 08:15:51

8

主题

75

回帖

211

积分

中级会员

积分
211
发表于 2024-1-19 13:31:03 | 显示全部楼层
liushi*** 发表于 2024-1-2 22:22
楼主,能发一下MODBUS调试助手软件吗?谢谢

我这边刚好有同款调试助手。

Modbus调试助手.zip

1.46 MB, 下载次数: 167

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-05-01 18:48:32
已绑定手机

6

主题

92

回帖

938

积分

高级会员

积分
938
发表于 2024-1-19 15:14:14 | 显示全部楼层
这简直是手把手教呀
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:482
  • 最近打卡:2025-05-01 07:56:03
已绑定手机

1

主题

54

回帖

2351

积分

金牌会员

积分
2351
发表于 2024-1-19 17:24:53 | 显示全部楼层
King*** 发表于 2024-1-19 13:31
我这边刚好有同款调试助手。

谢谢,大佬的提供
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:439
  • 最近打卡:2025-05-01 10:39:15
已绑定手机

40

主题

371

回帖

839

积分

高级会员

积分
839
发表于 2024-2-19 09:09:17 | 显示全部楼层
比较好奇主站怎么写

点评

就是发命令了,手续爱你得知道功能码,常见的包含如下几种功能: [attachimg]35342[/attachimg] 这里先以03举例, [attachimg]35343[/attachimg] 按照这个格式读取,发送的命令就是01 03 00 00 00 04 44 09 ;01  详情 回复 发表于 2024-2-19 11:08
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-2-19 11:08:36 | 显示全部楼层
飞*** 发表于 2024-2-19 09:09
比较好奇主站怎么写

就是发命令了,手续爱你得知道功能码,常见的包含如下几种功能:

截图202402191105075515.jpg

这里先以03举例,
截图202402191105361789.jpg

按照这个格式读取,发送的命令就是01 03 00 00 00 04 44 09 ;01就是地址,03就是功能码,00 00 是寄存器地址两个字节 后面的00 00 是寄存器个数,两个字节,最后两个字节就是CRC校验,
再来看下06的写入指令:
截图202402191107096963.jpg

06功能按照这个写入的话发送的数据为:01 06 00 00 00 02 08 0B ;可以按照上面的方法解析一下01就是地址,03就是功能码,00 00 是寄存器地址两个字节 后面的00 02 是往改地址里写入的数据值,两个字节,最后两个字节就是CRC校验,

这里仅提供一个思路,具体完整的协议可以网上搜下资料,超级多

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:439
  • 最近打卡:2025-05-01 10:39:15
已绑定手机

40

主题

371

回帖

839

积分

高级会员

积分
839
发表于 2024-2-19 11:41:44 | 显示全部楼层
电子DI*** 发表于 2024-2-19 11:08
就是发命令了,手续爱你得知道功能码,常见的包含如下几种功能:

比如,我有个内存列表,大概1000个寄存器,如果其中一个寄存器数据变了,我需要告诉从站,我就得自已去用功能码06去发给从站了。然后收到从站的回复。如果没回复,再次发送几次等等这些的源码。协议方面我是知道的,就好奇,如何写。

点评

直接发06写的命令呀,然后开个定时器500ms没接收到回复重新发,接受到错误也可以重新发或者直接报错,这里的哪个不会写?  详情 回复 发表于 2024-2-19 12:56
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-2-19 12:56:55 | 显示全部楼层
飞*** 发表于 2024-2-19 11:41
比如,我有个内存列表,大概1000个寄存器,如果其中一个寄存器数据变了,我需要告诉从站,我就得自已去用 ...

直接发06写的命令呀,然后开个定时器500ms没接收到回复重新发,接受到错误也可以重新发或者直接报错,这里的哪个不会写?
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:41 , Processed in 0.315805 second(s), 124 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表