我用串口发送一串字符,代码如下
temp=192
temp = Chr(temp) '求temp所对应的字符mStr = "#K" & Format(temp) + vbCrLf
MSComm1.Output = mStr接收到的显示为
文本显示为:
#K 十六进制显示为:
23 4B 00 0D 0A从接收到的数据看大于128的ACSII字符发送出来有问题,我程序中主要是把大于128的数转换成ACSII字符发送出来,不知道大家有什么好的建议,初学真是搞不太懂了
temp=192
temp = Chr(temp) '求temp所对应的字符mStr = "#K" & Format(temp) + vbCrLf
MSComm1.Output = mStr接收到的显示为
文本显示为:
#K 十六进制显示为:
23 4B 00 0D 0A从接收到的数据看大于128的ACSII字符发送出来有问题,我程序中主要是把大于128的数转换成ACSII字符发送出来,不知道大家有什么好的建议,初学真是搞不太懂了
Private Sub Command1_Click()
Dim strSj As String
strSj = "#K"
MSComm1.Output = strSj
Dim bytsj(0) As Byte
bytsj(0) = &HC0 '192
MSComm1.Output = bytsj
strSj = vbCrLf
MSComm1.Output = strSj
End Sub
Dim bytsj(4) As Byte
bytsj(0) = Asc("#")
bytsj(1) = Asc("K")
bytsj(2) = &HC0 '192
bytsj(3) = &HD '=VbCr
bytsj(4) = &HA '=VbLf
MSComm1.Output = bytsj
bytsj(0) = &HC0 '192
MSComm1.Output = bytsj //这里报错
显示:
实时错误”380“
无效的属性值
bytsj(0) = Asc("#")
bytsj(1) = Asc("K")
bytsj(2) = &HC0 '192
bytsj(3) = &HD '=VbCr
bytsj(4) = &HA '=VbLf
MSComm1.Output = bytsj
这个能够安全运行下去,非常感谢
但查了下,似乎大于128值的ASCII码都不显示字符了
是不是只能是16进制发送?学习