vb控件mscomm接收的数据和发送的不一致!!!

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:28:46
Private Sub MSComm1_OnComm()
Dim ii As Variant
Dim inbyte() As Byte
Select Case MSComm1.CommEvent
Case 2

ii = MSComm1.Input
inbyte = ii
For I = 0 To UBound(inbyte)

Text1.Text = Text1.Text & Hex(inbyte(I))

Next
End Select
End Sub
为什么接收的十六进制数据和发送的不一样呢?
不行啊!!!对方用串口精灵发,我用vb收,收到的数据不对!但是当我把串口2.3脚相接时自发自收的数据是完全正常的啊!

Private Sub MSComm1_OnComm()
Dim ii As Variant
Dim inbyte() As Byte
Select Case MSComm1.CommEvent
Case 2
MSComm1.InputMode = comInputModeBinary '二进制接收
ii = MSComm1.Input
inbyte = ii
For I = 0 To UBound(inbyte)
If Len(Hex(inbyte(I))) = 1 Then
Text1.Text = Text1.Text & "0" & Hex(inbyte(I))
Else
Text1.Text = Text1.Text & Hex(inbyte(I))
End If
Next
End Select
End Sub

检查以下MSComm的参数设置

i = MSComm1.Input
inbyte = i
For i = LBOUND(inByte) To UBound(inbyte)
Text1.Text = Text1.Text & Hex(inbyte(i)) & chr(32)
next i

串口精灵发送给上位机,然后数据不对吗?2,3脚对调以后你和下位机通信数据正确?

请检查两台计算机的通讯程序的波特率是否设置一致!
9600,n,8,1 ?还是其它?