利用VB实现接收单片机数据

来源:百度知道 编辑:UC知道 时间:2024/06/30 01:25:35
利用VB实现接收单片机数据(1字节2进制数据)
Private Sub Form_Load()
MSComm1.CommPort = 1 '通道1
MSComm1.Settings = "9600,N,8,1" '"9600,N,8,1"
MSComm1.PortOpen = True '打开串口
MSComm1.RThreshold = 1 '接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件
'InputModeBinary = 1
End Sub

Private Sub MSComm1_OnComm()
Dim a As Byte
Text1.Text = a
MSComm1.InBufferCount = 0
End Sub
这样对吗?
InputModeBinary=1是什么?
我是接收20个左右的数据``而每个数据都是二进制的只占1字节的数
Private Sub Form_Load()
MSComm1.CommPort = 1 '通道1
MSComm1.Settings = "9600,N,8,1" '"9600,N,8,1"
MSComm1.RThreshold = 1 '接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件
MSComm1.PortOpen = True '打开串口
MSComm1.InputMode = comInputModeBinary '以二进制方式接收
End Sub

Private Sub MSComm1_OnComm()
On Error Resume Next
Text1 = ""
Dim a() As Byte
Dim strBuff As String
Dim str

代码有错,修改如下,以二进制方式接收,转为16进制字符形式显示:
Private Sub Form_Load()
MSComm1.CommPort = 1 '通道1
MSComm1.Settings = "9600,N,8,1" '"9600,N,8,1"
MSComm1.RThreshold = 1 '接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件
MSComm1.PortOpen = True '打开串口
MSComm1.InputMode = comInputModeBinary '以二进制方式接收
End Sub

Private Sub MSComm1_OnComm()
On Error Resume Next
Text1 = ""
Dim a() As Byte
Dim strBuff As String
Dim strData As String
Dim i As Integer
Dim x As Integer
Select Case MSComm1.CommEvent
Case 2
MSComm1.InputLen = 0
strBuff = MSComm1.Input
a() = strBuff
For i = 0 To UBound(a)
If Len(Hex(a(i))) = 1 Then
strData = strData & "0" & Hex(a(i))
Else
strData = strData & Hex(a(i))