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

stc小白求教

[复制链接]
  • TA的每日心情

    14 小时前
  • 签到天数: 46 天

    [LV.5]常住居民I

    8

    主题

    6

    回帖

    124

    积分

    注册会员

    积分
    124
    发表于 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功能码
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 134 天

    [LV.7]常住居民III

    39

    主题

    406

    回帖

    2148

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情

    14 小时前
  • 签到天数: 46 天

    [LV.5]常住居民I

    8

    主题

    6

    回帖

    124

    积分

    注册会员

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

    谢谢
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-30 23:21 , Processed in 0.076518 second(s), 39 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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