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

((u8)modbus_reg[1]=0x04) << 8;报错无效??? | 已解决

[复制链接]
  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 165 天

    [LV.7]常住居民III

    114

    主题

    469

    回帖

    942

    积分

    高级会员

    积分
    942
    发表于 2023-10-10 08:52:56 | 显示全部楼层 |阅读模式
    ((u8)modbus_reg[1]=0x04) << 8;报错无效???我想把modbus_reg[1]低8位赋值完毕后,再移植高8位, 具体见附件,

    尝试了以下几种都不行:
    (modbus_reg[1]=0x04) << 8;
    ((u16)modbus_reg[1]=0x04) << 8;

    (u16)((u8)modbus_reg[1]=0x04) << 8;


    报错.png
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1333

    回帖

    4151

    积分

    论坛元老

    积分
    4151
    发表于 2023-10-10 09:16:46 | 显示全部楼层
    ((u8)modbus_reg[1]=0x04) << 8;
    你这条指令拆解成2条指令:
    1. modbus_reg[1]=0x04;
    2. modbus_reg[1]<<8;
    第1条是有效指令,第2条是无效指令,因为左移之后的内容没有存放到变量里面。
    根据你的描述可以修改成以下指令:
    modbus_reg[1]=(u16)0x04 << 8;
    或者
    modbus_reg[1]=0x0400;
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 165 天

    [LV.7]常住居民III

    114

    主题

    469

    回帖

    942

    积分

    高级会员

    积分
    942
     楼主| 发表于 2023-10-10 14:42:03 | 显示全部楼层

    感谢支持,是的你给出的这两语句都编译没问题,我回来测试一下,是我把自己绕进去了,再次感谢!
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-14 13:59 , Processed in 0.061657 second(s), 39 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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