VB程序接收来自串口的二进制数据,高位低位组合成一个长数据

2024-12-04 19:38:08
推荐回答(3个)
回答1:

你单片机虽然发的是二进制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数

回答2:

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

回答3:

A(高位)B(低位)A(高位)B(低位)A(高位)B(低位)
这个看不明白,能不能给几个实际的数据,然后它的结果应该是什么,举个实例