数据转16进制形式的字符串



在lua中使用如下设置机器人寄存器的指令时,最后的值为对应数据的16进制形式的字符串形式,

set_robot_register (66,1,"FF" ) --发送的数据为255

可以使用以下代码进行转换

function Data2String(d)
  -- 输入为0-65535的数据
  -- 如果数据大于255,返回的字符串形式16进制数据,低字节在前,高字节在后
  if (d > 255) then
    out = string.pack("I2", string.format("%u", d))
    out = string.unpack('>I2',out)
    return string.upper(string.format("%04x", out))
  else
    return string.upper(string.format("%02x", d))
  end
end
a = 15
set_robot_register (66,1,Data2String(a)--发送数据15,实际发出的为"0F"
a = 65533
set_robot_register (66,2,Data2String(a)--发送数据65533,实际发出的为"FDFF",注意字符串形式数据,低字节在前,高字节在后
点击显示全文
赞同0
发表评论
分享

手机扫码分享
0
217
收藏
举报
收起
登录
  • 密码登录
  • 验证码登录
还没有账号,立即注册
还没有账号,立即注册
注册
已有账号,立即登录
选择发帖板块
举报
请选择举报理由
举报
举报说明