标题:VB6能實現如下功能嗎?2021-2-13
取消只看楼主
宋政林
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2020-9-16
结帖率:100%
已结贴  问题点数:20 回复次数:3 
VB6能實現如下功能嗎?2021-2-13
一,做一個控制來實現自動化。

1,有一個串口會發來一組十六進制的數據(01 02 01 01 60 48 01 02 01 FE 20 08),VB6接收到讓它如何顯示在text1中,(之前做過串口發送方面的,但接收部分沒有做過)忘大神指導,不勝感激!

[此贴子已经被作者于2021-2-13 12:27编辑过]

搜索更多相关主题的帖子: text1 VB6 感激 
2021-02-13 09:34
宋政林
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2020-9-16
得分:0 
以下是引用宋政林在2021-2-13 09:34:54的发言:

一,做一個控制來實現自動化。

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
2021-02-13 15:26
宋政林
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2020-9-16
得分:0 
回复 3楼 cwa9958
你好:cwa9958
    1,通過剛剛的測試,發現01 02 01 01 60 4801 02 01 FE 20 08   (01 02 01 01 60 48和01 02 01 FE 20 08)確實是接收了2次,通過注釋掉'istr = RTrim(istr)這個后就有空格了。

    2,問題點:如果a裡面為01 02 01 01 60 48 01 02 01 FE 20 08,怎麼和01 02 01 01 60 48 01 02 01 FE 20 08這個進行對比,謝謝!

[此贴子已经被作者于2021-2-14 19:56编辑过]

2021-02-14 19:01
宋政林
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2020-9-16
得分:0 
回复 5楼 yuma
你好:yuma
通過如下代碼后,好像可以了,語法上面的使用都是OK的吧,謝謝你的幫助。

Text1 = istr   'Text1正常接收為:01 02 01 01 60 48 01 02 01 FE 20 08   (01 02 01 01 60 4801 02 01 FE 20 08)

k2 = "01 02 01 01 60 4801 02 01 FE 20 08"

If Text1 = k2 Then

isk2 = True
Label2.Caption = "數據相同"
2021-02-16 20:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504873-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.234947 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved