VB RS232串口通信问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:31:59
Private Sub mscomm1_OnComm()
Dim nineng As Integer, huada As String
Select Case Me.MSComm1.CommEvent
Case comEvReceive
strData = Me.MSComm1.Input
Text1.Text = Left$(strData, 2)
Text2.Text = Mid(strData, 3, 2)
Text3.Text = Mid(strData, 5, Len(strData) - 8)
Text4.Text = Right$(Left$(strData, Len(strData) - 2), 2)
Text5.Text = Right$(strData, 2)
If Text2.Text = "22" And Text5.Text = "EE" Then
sum = sum + 1
For nineng = 2 To Len(Text3.Text) Step 2
huada = huada & Mid(Text3.Text, nineng, 1)
Next
MSFlexGrid1.Rows = sum
MSFlexGrid1.TextMatrix(sum - 1, 0) = Text1.Text
MSFlexGrid1.TextMatrix(sum - 1, 1) = huada
If Text4.Text = "66" Then
MSFlexGrid1.TextMatrix(sum - 1, 2) = "正常"
ElseIf Text4.Text = "99" Then
MSFlexGrid1.TextMatrix(sum - 1, 2) = "异常"
If MSFlexGrid1.TextMatrix(sum - 1, 2) = "异常&

Text3.Text = Mid(strData, 5, Len(strData) - 8) 在此步中断一下.不就知道了

你接收数据有问题 第一次没处理.
002203010099EE 14个字符 你明确说了发二次才能收到. 那正好是28个字符
//002203010099EE002203010099EE
Text3.Text = Mid(strData, 5, 28 - 8)
//Text3.Text=03010099EE0022030100

看一下你的串口初始化设置吧. 主要是串口初始出了问题. 有数据时没有接收到