主题:我自己写的上位机接收程序,请大神帮我看看怎么修改正常啊
Private Sub MSComm1_OnComm()
Dim BytesReceived() As Byte
Dim buffer As String
Dim HData As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
buffer = MSComm1.Input
BytesReceived() = buffer
For i = 0 To UBound(BytesReceived) '显示结果以十六进制显示
If Len(Hex(BytesReceived(i))) = 1 Then
HData = HData & "0 " & Hex(BytesReceived(i))
Else
HData = HData & Hex(BytesReceived(i))
End If
Next
End Select
Dim a, b, c, d, e As String
a = Mid(HData, 1, 2)
b = Mid(HData, 3, 4)
Text2.Text = a
Text3.Text = b
[size=4][color=00FF00] 到这里的话能正常显示,我用下位机发来的数据是1DH,4EH,4F,然后Text2.Text显示1D,Text3.Text显示4E4F[/color][/size]
If a = &H3D Then Text5.Text = b[size=4][color=000080]这就不能显示了,这几个框什么也没有[/color][/size]
If a = &H2D Then Text6.Text = b
'If a = &H1D Then Text4.Text = b
End If
Call Command1_Click
End Sub 请问是什么原因啊
Dim BytesReceived() As Byte
Dim buffer As String
Dim HData As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
buffer = MSComm1.Input
BytesReceived() = buffer
For i = 0 To UBound(BytesReceived) '显示结果以十六进制显示
If Len(Hex(BytesReceived(i))) = 1 Then
HData = HData & "0 " & Hex(BytesReceived(i))
Else
HData = HData & Hex(BytesReceived(i))
End If
Next
End Select
Dim a, b, c, d, e As String
a = Mid(HData, 1, 2)
b = Mid(HData, 3, 4)
Text2.Text = a
Text3.Text = b
[size=4][color=00FF00] 到这里的话能正常显示,我用下位机发来的数据是1DH,4EH,4F,然后Text2.Text显示1D,Text3.Text显示4E4F[/color][/size]
If a = &H3D Then Text5.Text = b[size=4][color=000080]这就不能显示了,这几个框什么也没有[/color][/size]
If a = &H2D Then Text6.Text = b
'If a = &H1D Then Text4.Text = b
End If
Call Command1_Click
End Sub 请问是什么原因啊