串口通信显示的问题
01 02 03 04 05 FF 04 06 06 07 01 FF FF FF 06 FF
00 00 00 00 00 02 04 00 00 01 03 00 FF FF FF FF
想在VB文本框里显示效果如上图
每接收到16个字节自动换行
下面是我写的代码片段
想法是数组编号加1能被16整除
就换行 不知是否可行
Dim ReceiveArr() As Byte ' 接收数据数组
Dim receiveData As String ' 数据暂存
Dim Counter As Integer ' 接收数据个数计数器
Dim i As Integer ' 循环变量
If (MSComm.InBufferCount > 0) Then
Counter = MSComm.InBufferCount ' 读取接收数据个数
receiveData = "" ' 清缓冲
ReceiveArr = MSComm.Input ' 数据放入数组
For i = 0 To (Counter - 1) Step 1 ' 数据格式处理
If (ReceiveArr(i) < 16) And (i + 1 Mod 16 <> 0) Then
receiveData = receiveData & "0" + Hex(ReceiveArr(i)) & Space(1) ' 小于16,前面加0
ElseIf (ReceiveArr(i) < 16) And (i + 1 Mod 16 = 0) Then
receiveData = receiveData & "0" + Hex(ReceiveArr(i)) & vbCrLf
ElseIf (ReceiveArr(i) >= 16) And (i + 1 Mod 16 <> 0) Then
receiveData = receiveData & Hex(ReceiveArr(i)) & Space(1)
Else
receiveData = receiveData & Hex(ReceiveArr(i)) & vbCrLf ' 加空格显示
End If
Next i
TxtReceive.Text = TxtReceive.Text + receiveData ' 显示接收的十六进制数据
TxtReceive.SelStart = Len(TxtReceive.Text) ' 显示光标位置
End If
[解决办法]
http://download.csdn.net/detail/veron_04/1262066
[解决办法]