首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

串口通信显示的有关问题

2012-12-26 
串口通信显示的问题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

串口通信显示的问题
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
[解决办法]

引用:
http://download.csdn.net/detail/veron_04/1262066


看过不行   收发我都实现了  我现在是按固定格式显示的问题
[解决办法]
最简单的方式,

1 设置 TextBox 的 MultiLine = True,

2 设置字体为等宽字体,

3 调整 TextBox 的宽度,使之每行只能放得下 16 个“字节”数据,迫使它自动换行。
[解决办法]
引用:
最简单的方式,

1 设置 TextBox 的 MultiLine = True,

2 设置字体为等宽字体,

3 调整 TextBox 的宽度,使之每行只能放得下 16 个“字节”数据,迫使它自动换行。

谢谢  应该是可以   如果是把所有数据按每16个字节截成一段再显示好实现吗

热点排行
Bad Request.