以下是引用宋政林在2021-2-13 09:34:54的发言:
一,做一個控制來實現自動化。
1,有一個串口會發來一組十六進制的數據(01 02 01 01 60 48 01 02 01 FE 20 08),VB6接收到讓它如何顯示在text1中,(之前做過串口發送方面的,但接收部分沒有做過)忘大神指導,不勝感激!
一,做一個控制來實現自動化。
1,有一個串口會發來一組十六進制的數據(01 02 01 01 60 48 01 02 01 FE 20 08),VB6接收到讓它如何顯示在text1中,(之前做過串口發送方面的,但接收部分沒有做過)忘大神指導,不勝感激!
先使用的串口調試軟件測試結果如下圖:
後來使用代碼寫出來的,中間48和01連在一起了,如下圖,(01 02 01 01 60 48為輸入點閉合,01 02 01 FE 20 08為輸入點斷開)。有什麼方式可以分開嗎?
'---------------變量聲明-----------------------------------------
Dim a() As Byte, istr As String
Private Sub Command1_Click()
istr = ""
Text1 = ""
End Sub
'---------------窗體載入 RS232設定內容-----------------------------------------
Private Sub Form_Load()
= 1
MSComm1.InBufferCount = 0 '清空接收缓冲区
MSComm1.RThreshold = 1 '缓冲区中接收到一个字符,就产生一次OnComm事件
MSComm1.SThreshold = 1 '若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件。
MSComm1.InputMode = comInputModeBinary '二进制接收comInputModeBinary 'InputMode属性:设置接收数据的类型,0为文本格式,1为二进制格式。
MSComm1.PortOpen = True
MSComm1.Settings = "115200,n,8,1"
End Sub
Private Sub MSComm1_OnComm()
a = MSComm1.Input
For i = 0 To UBound(a)
istr = istr & Format(Hex(a(i)), "00") & " "
Next
istr = RTrim(istr)
Text1 = istr 'Text1正常接收為:01 02 01 01 60 48 01 02 01 FE 20 08
End Sub