发送端发的是16进制的以下数据FC 2C 01 0D 0A 0A 00 0B 0D 0B 0A 00 16 0D
0C 0A 00 21 0D 1E 0A 00 2C 0D 14 0A 00 37
0D 15 0A 00 00 1A 0A 0D 28 0A 07 FA接受端的代码如下:
Private Sub Winsk1_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim Receive_Byte() As Byte
Dim Receive_Temp As VariantDim Temp_En As String
If Y_ConnOK(index) = True Then
Winsk1(index).GetData MidData, vbString
Receive_Temp = MidData
Receive_Byte = Receive_Temp
For i = 0 To Len(Receive_Temp)
If Receive_Byte(i) < 16 Then
Temp_En = Temp_En & "0" & Hex(Receive_Byte(i))
Else
Temp_En = Temp_En & Hex(Receive_Byte(i))
End If
NextInfo_In = Info_In & Temp_En
Temp_En = ""
Text7 = Info_In
Info_In = ""但我解出来是:
3F0001000D000A000A0000000B000D000B000A
00000016000D000C000A00000021000D001E000A00
哪里出的问题?
0C 0A 00 21 0D 1E 0A 00 2C 0D 14 0A 00 37
0D 15 0A 00 00 1A 0A 0D 28 0A 07 FA接受端的代码如下:
Private Sub Winsk1_DataArrival(index As Integer, ByVal bytesTotal As Long)
Dim Receive_Byte() As Byte
Dim Receive_Temp As VariantDim Temp_En As String
If Y_ConnOK(index) = True Then
Winsk1(index).GetData MidData, vbString
Receive_Temp = MidData
Receive_Byte = Receive_Temp
For i = 0 To Len(Receive_Temp)
If Receive_Byte(i) < 16 Then
Temp_En = Temp_En & "0" & Hex(Receive_Byte(i))
Else
Temp_En = Temp_En & Hex(Receive_Byte(i))
End If
NextInfo_In = Info_In & Temp_En
Temp_En = ""
Text7 = Info_In
Info_In = ""但我解出来是:
3F0001000D000A000A0000000B000D000B000A
00000016000D000C000A00000021000D001E000A00
哪里出的问题?
'FC2C010D0A0A000B0D0B0A00160D0C0A00210D1E0A002C0D140A00370D150A00001A0A0D280A07FA
解出来变成了'FCC00DA000B00BA016D00A020DE000C014A037D10A001AA028A0
中间少了一部分,也就是每2个中间少了一个,头都晕了想不通?我的原代码如下
Dim Receive_Byte() As Byte
Dim Receive_Temp As Variant
Dim Temp_En As String
Winsk1(index).GetData Receive_Byte
MidData = Receive_Byte
Receive_Temp = MidData
For i = 0 To Len(Receive_Temp) * 2 - 1
If Receive_Byte(i) < 16 Then
Temp_En = Temp_En & "0" & Hex(Receive_Byte(i))
Else
Temp_En = Temp_En & Hex(Receive_Byte(i))
End If
Next
Text7 = Temp_En
Exit Sub