VB串口通信遇到的有关问题
VB串口通信遇到的问题
Private Sub MSComm1_OnComm()
Static num As Integer
Dim Buffer As Variant
Dim Arr() As Byte
receive_cnt = MSComm1.InBufferCount '接收缓冲区的字节数
Buffer = MSComm1.Input
Arr = Buffer
indate = Val(Arr(0)) '收到的二进制数转换成十进制数
If num = 0 Then
Text2.Text = indate
ElseIf num = 1 Then
Text3.Text = indate
End If
num = mum + 1
If num = 2 Then
num = 0
End If
End Sub
我下位机上传两个数据,TEXT2显示第一个数据,TEXT3显示第二个数据。现在,第一次上传的数据显示正常。但是下来显示的数据都在TEXT3中显示是什么问题
------解决方案--------------------
Private Sub MSComm1_OnComm()
Static num As Integer
Dim Buffer As Variant
Dim Arr() As Byte
receive_cnt = MSComm1.InBufferCount '接收缓冲区的字节数
Buffer = MSComm1.Input
Arr = Buffer
indate = Val(Arr(0)) '收到的二进制数转换成十进制数
If num = 0 Then
Text2.Text = indate
ElseIf num = 1 Then
Text3.Text = indate
End If
num = mum + 1
If num = 2 Then
num = 0
End If
End Sub
我下位机上传两个数据,TEXT2显示第一个数据,TEXT3显示第二个数据。现在,第一次上传的数据显示正常。但是下来显示的数据都在TEXT3中显示是什么问题
------解决方案--------------------
- VB code
Option Explicit Dim receive_cnt Dim indate As Integer Private Sub Form_Load() MSComm1.RThreshold = 1 MSComm1.InputMode = comInputModeBinary MSComm1.PortOpen = True End Sub Private Sub MSComm1_OnComm() Static num As Integer Dim Buffer As Variant Dim Arr() As Byte Select Case MSComm1.CommEvent Case 2 Text4 = num Arr = MSComm1.Input indate = Arr(0) '收到的二进制数转换成十进制数 If num = 0 Then Text2.Text = indate ElseIf num = 1 Then Text3.Text = indate End If num = num + 1 If num >= 2 Then num = 0 'num - 2 End If End Select End Sub