串口16进制空格问题

HUITONGsyb 2015-02-08 12:43:02
Option Explicit
Dim strData As String

Private Sub Form_Load()
MSComm1.CommPort = 17
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
Text1 = ""
Timer1.Interval = 1
Timer1.Enabled = True

End Sub

Private Sub MSComm1_OnComm()
Dim buffer() As Byte
Dim i As Integer
Select Case MSComm1.CommEvent
Case 2
buffer = MSComm1.Input
For i = 0 To UBound(buffer)
If Len(Hex(buffer(i))) = 1 Then
strData = strData & "0" + Hex(buffer(i))
Else
strData = strData & Hex(buffer(i))
End If
Next i
If Len(strData) > 5 Then
Text1.Text = strData
strData = ""
End If
End Select
End Sub

Private Sub Timer1_Timer()
MSComm1_OnComm

End Sub



text1里面显示的是 EAEB3458690283756489292038475758
怎么才能显示成 EA EB 34 58 69 02 83 75 64 89 这种中间有空格的啊,因为我收到之后还要以16进制发出去呢
...全文
448 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
三楼の郎 2015-02-08
  • 打赏
  • 举报
回复
If Len(Hex(buffer(i))) = 1 Then strData = strData & "0" + Hex(buffer(i)) Else strData = strData & Hex(buffer(i)) End If 改成 If Len(Hex(buffer(i))) = 1 Then strData = strData & "0" + Hex(buffer(i)) & " " Else strData = strData & Hex(buffer(i)) & " " End If
zdingyun 2015-02-08
  • 打赏
  • 举报
回复
引用 楼主 HUITONGsyb 的回复:
text1里面显示的是 EAEB3458690283756489292038475758 怎么才能显示成 EA EB 34 58 69 02 83 75 64 89 这种中间有空格的啊,因为我收到之后还要以16进制发出去呢
Option Explicit
    Dim strData As String

Private Sub Form_Load()
    MSComm1.CommPort = 1
    MSComm1.Settings = "9600,n,8,1"
    MSComm1.InputMode = comInputModeBinary
    MSComm1.RThreshold = 1
    MSComm1.PortOpen = True
    Text1 = ""
    Timer1.Interval = 1
    Timer1.Enabled = True
End Sub

Private Sub MSComm1_OnComm()
    Dim buffer() As Byte
    Dim i As Integer
    Select Case MSComm1.CommEvent
        Case 2
            buffer = MSComm1.Input
            For i = 0 To UBound(buffer)
                If Len(Hex(buffer(i))) = 1 Then
                    strData = strData & "0" + Hex(buffer(i)) & " "
                Else
                    strData = strData & Hex(buffer(i)) & " "
                End If
            Next i
            If Len(strData) > 5 Then
                Text1.Text = strData
                strData = ""
            End If
    End Select
End Sub

Private Sub Timer1_Timer()
    MSComm1_OnComm
End Sub

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧