你单片机虽然发的是二进制1,但实际上VB接收到的是字符1,每个8个字符表示一个字节,你可以先定义一个 整形数,16位的。假设你定义 dim a as integer ,接到第一个"1"的时候,a=1
第二个1的时候,a=a*2+1,反之如果0,则a=a*2+0, a*2相当于左移。移15次后,就可以把高8,低8整合一起了,到时候想什么判断都可以。希望能帮到你。记得接到的字符要+0来转成整数。
如果你的rdata已经是接到到的8位了,这样就更好弄了,高8的时候a=rdata;低 8 a=a*256+rdata数
Private Sub Form_Load()
串口.CommPort =1
串口.InputMode=1
串口.PortOpen = True
End Sub
Private Sub 串口_OnComm()
On Error GoTo 错误处理
If 串口.CommEvent = comEvReceive Then
Text1.Text = 数据接收
End If
Exit Sub
错误处理:
Call 错误处理过程
End Sub
Private Function 数据接收() As String
Dim 暂存器() As Byte
Select Case 串口.InputMode
Case 0
数据接收 = 串口.Input
Case 1
暂存器 = 串口.Input
数据接收 = ""
For i = 0 To UBound(暂存器)
数据接收 = 数据接收 & Hex(暂存器(i))
Next
End Select
End Function
A(高位)B(低位)A(高位)B(低位)A(高位)B(低位)
这个看不明白,能不能给几个实际的数据,然后它的结果应该是什么,举个实例