综合技术
直播中

赵晨

8年用户 178经验值
私信 关注
[问答]

VB上位机与51的数据传送接收到的是数据对应的ASCII码

Sub shuchu()
Dim k As Integer
Dim senddata(0 To 4) As String
For k = 0 To 4
senddata(k) = HScroll1(k).Value
MSComm1.Output = Hex(senddata(k))
Form1.Print Hex(senddata(k))
Next k
上面这个VB程序发送数据后接收到的怎么一直是数据对应的ASCII码呢?
void ser() interrupt 4
    {
  RI=0;
  t=0xSBUF;
}

回帖(7)

周羽姿

2020-3-10 09:02:07
帮顶。
举报

徐丽丽

2020-3-10 09:18:43
原因不确定:
有可能是默认的数据转换出了问题,
将hex转出来的16进制数,当成了字符串,比如“FF”,当成了'F'、'F',然后转换到mscomm的output中了
可以参考一下内容改动:
 Dim senddata(0 To 4) As String
定义为byte数据类型
通信控件mscomm的output赋值,也没必要再用hex转换
举报

王雷

2020-3-10 09:32:45
为验证,你可将mscomm控件的output赋值改为一下内容验证
mscomm1.output="&H" & hex(待输出内容)
反映一下:回复时看不到原帖内容,无法照抄。
举报

甘璐妲

2020-3-10 09:45:31
路过   帮顶
举报

更多回帖

发帖
×
20
完善资料,
赚取积分