vb串口发送十六进制这样是否对的?
关键代码如下:
ReDim Preserve ss(12)
ss(0) = &HDD
ss(1) = &H9
ss(2) = &H17
ss(4) = &H14
ss(11) = &H1E
ss(12) = &HA
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
MSComm1.Output = ss
Private Sub MSComm1_OnComm()
On Error Resume Next
Dim bs As Long
If MSComm1.CommEvent <> 0 Then
vbyte = MSComm1.Input
For i = 0 To UBound(vbyte)
If Len((vbyte(i))) = 1 Then
l1.Caption = l1.Caption & vbyte(i) & " "
Else
l1.Caption = l1.Caption & vbyte(i) & " "
End If
Next i
End If
End Sub
这样发给下位机的是否是十六进制?
[解决办法]
看协议,下位机接收的是数值还是字符串。
[解决办法]
楼主还是没有明白。
重点在于下位机是如何解释它收到的数据的。
数据线上传输没的有什么十六进制数。就是看下位机是被每个字节当作数字还是 ASCII 码。也就是说,你究竟需要发送二进制的数字,还是“十六进制字符串”(文字)?
[解决办法]
Hex() 函数取得的是“十六进制字符串”。