找回密码
 立即注册
查看: 571|回复: 2

stc小白求教

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:204
  • 最近打卡:2025-04-02 13:56:58

19

主题

37

回帖

236

积分

中级会员

积分
236
发表于 2023-11-7 15:22:57 | 显示全部楼层 |阅读模式
各位STC资深大佬,我是工控小白,今日在学习modbus通信,代码有些看不懂,但在实际验证中还是有些收获和问题,还望各位指点迷津。

图中我将modbus_reg寄存器地址赋值 1 2 3 4,如果正常读4个寄存器,那么值是正常的,但是如果多读几个寄存器,比如我只有modbus_reg[1],modbus_reg[2],modbus_reg[3],modbus_reg[4]赋值了,但我一次读了六个,按理说后两个值应该为0,为什么我读到了其他值,是谁赋值给他的?求各位指点指点。

将modbus_reg寄存器地址赋值1 2 3 4

将modbus_reg寄存器地址赋值1 2 3 4

读03H功能码

读03H功能码
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-02 21:17:31
已绑定手机
已实名认证

110

主题

2223

回帖

5464

积分

版主

积分
5464
发表于 2023-11-7 17:01:26 | 显示全部楼层
C语言的数组是没有越界保护的,所以读多了指定是读到内存里面其他的东西了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:204
  • 最近打卡:2025-04-02 13:56:58

19

主题

37

回帖

236

积分

中级会员

积分
236
发表于 2023-11-9 17:05:08 | 显示全部楼层
王*** 发表于 2023-11-7 17:01
C语言的数组是没有越界保护的,所以读多了指定是读到内存里面其他的东西了。 ...

谢谢
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 21:56 , Processed in 0.123441 second(s), 61 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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