求代码VB串口接受16进制数组

来源:百度知道 编辑:UC知道 时间:2024/06/23 14:27:20
我把机器的串口发送和接受连接起来调试,下面是我的发送程序
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.InputMode = 0
MSComm1.Settings = "9600,n,8,2"
MSComm1.RThreshold = 1 '设置接收一个字节产生OnComm事件
MSComm1.InputLen = 0
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
If Not MSComm1.PortOpen Then
MSComm1.PortOpen = True
End If
End Sub
Private Sub Command2_Click()
Dim Data(2) As Byte
Data(0) = &H82
Data(1) = &H82
'msgbox data(0)
MSComm1.Output = Data
End Sub
Private Sub MSComm1_OnComm()
Dim rcvtemp() As Byte
Dim rcv(2) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
rcvtemp = MSComm1.Input
rcv=rcvtemp
'msgbox rcv(1)
End Select
End Sub

但是可以看出data(0)是130但是rcv(0)却是1,为什么呢???
怎么才能正确接受

我想是否是每次只能接收1bit造成的,你试试用rcv(0)到rcv(15)去接收,看能否接收到10000010,如果是,说明我的判断是正确的,如果不是,那我也没有办法说明这个问题。

Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.InputMode = comInputModeBinary
MSComm1.Settings = "9600,n,8,2"
MSComm1.RThreshold = 1 '设置接收一个字节产生OnComm事件
MSComm1.InputLen = 0
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
If Not MSComm1.PortOpen Then
MSComm1.PortOpen = True
End If
End Sub
Private Sub Command1_Click()
Dim Data(2) As String
Data(0) = Chr(&H78)
Data(1) = Chr(&H31)
Data(2) = Chr(&H4D)
Dim i As Integer
For i = 0 To 2
MSComm1.Output = Data(i)
Next i
End Sub
Private Sub MSComm1_OnComm()
On Error Resume Next
Dim rcv() As Byte
Dim rcvtemp As String
Dim hdate As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive