PB使用MsComm32.ocx控件输出16进制数
String ls_parm , ls_16jzInt li_10jz
ls_parm = "0A1A2A3A4A5A6A7A8A9A"//16进制字符串 每两位是一个16进制字符
For i = 1 To Len(ls_parm) step 2
ls_16jz = Mid(ls_parm,i,2)
li_10jz = gf_hextodec(ls_16jz) //先把16进制转换成10进制
ls_output = ls_output + Char(li_10jz)
Next
ole_1.object.output = ls_output
gf_writelog(ls_output)//记录日志 用Minihex软件查看输出的16进制是多少
我记录了日志 通过串口传出16进制变成
0x0A 0x1A 0x2A 0x3A 0x4A 0x5A 0x6A 0x7A 0x3F 0x3F
前面的都是好好的
最后两个 不知道为什么就变成转换成0x3F了
String ls_parm , ls_16jz
Int li_10jz
ls_parm = "7376787980"//16进制字符串 每两位是一个16进制字符
For i = 1 To Len(ls_parm) step 2
ls_16jz = Mid(ls_parm,i,2)
li_10jz = gf_hextodec(ls_16jz) //先把16进制转换成10进制
ls_output = ls_output + Char(li_10jz)
Next
ole_1.object.output = ls_output
gf_writelog(ls_output)//记录日志 用Minihex软件查看输出的16进制是多少
我记录了日志 通过串口传出16进制变成
0x73 0x76 0x78 0x79 0x3F
通过我检测发现 16进制的字符 79 以前输出的都可以用
等到 16进制 80 输出又变成 0x3F
总结:
一个16进制字符
如果是一个字母 一个数字 组合的 肯定不行
如果是两个数字的组合 只要前面那个数字超过8 又不行了
高手请教这是怎么回事
串口输出16进制数据到底该怎么处理