国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
MSComm 控件的Input 屬性及InputMode 屬性探究
MSComm 控件的Input 屬性及InputMode 屬性探究
最近對(duì)MSComm 控件的Input 屬性研究得出一些觀點(diǎn),提供給各位關(guān)心串口通信的愛好者。
當(dāng)設(shè)置MSComm 控件的InputMode 屬性為comInputModeText時(shí),串口是按返回接收到的ASCII碼在MSComm 控件轉(zhuǎn)換成Unicode碼。
以下代碼可揭示上述結(jié)論:
Option Explicit
    Dim strData As Variant
 
Private Sub Command1_Click()
    Text2 = ""
End Sub
 
Private Sub Form_Load()
    Text1 = ""
    Text2 = ""
    MSComm1.CommPort = 1
    MSComm1.InputMode = comInputModeText '數(shù)據(jù)通過 Input 屬性以文本形式取回。
    MSComm1.RThreshold = 1
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.PortOpen = True
    MSComm1.InputLen = 1
End Sub
 
Private Sub MsComm1_OnComm() '接收數(shù)據(jù)
    Dim BytReceived() As Byte
    Dim strBuff As String
    Select Case MSComm1.CommEvent
        Case 2
            Text1 = ""
            Text3 = MSComm1.InBufferCount '接收緩沖區(qū)的字節(jié)數(shù)
            strBuff = MSComm1.Input '
            BytReceived() = strBuff '
            Dim i As Integer
            For i = 0 To UBound(BytReceived)
                If Len(Hex(BytReceived(i))) = 1 Then
                    strData = strData & "0" & Hex(BytReceived(i))
                Else
                    strData = strData & Hex(BytReceived(i))
                End If
            Next
            '數(shù)據(jù)處理代碼
            Dim sj As String
            sj = Right(strData, 2) & Left(strData, 2)
            Text1 = strData
            Text2 = Text2 & ChrW(Val("&H" & sj))
            strData = ""
    End Select
End Sub
注意上述代碼中設(shè)置MSComm 控件的InputMode 屬性為comInputModeText,而接收是按2進(jìn)制Byte字節(jié)的數(shù)組取出。
用一串口調(diào)試程序發(fā)送文本字節(jié),單個(gè)漢字或單個(gè)ASCII字符(英文字母或0-9數(shù)字),你會(huì)發(fā)現(xiàn),接收到漢字時(shí)MSComm1.InBufferCount值為2,接收A-Z(a-z,0-9)時(shí)MSComm1.InBufferCount值為1。同時(shí)Text2中顯示分別是調(diào)試串口程序發(fā)送的單個(gè)漢字或單個(gè)ASCII字符(英文字母或0-9數(shù)字)。
當(dāng)設(shè)置MSComm 控件的InputMode 屬性為comInputModeBinary時(shí),串口是按返回一數(shù)據(jù)組的二進(jìn)制數(shù)據(jù)(Byte)字節(jié)的數(shù)組,但MSComm1.Input可賦值給一個(gè)String變量strBuff,在轉(zhuǎn)賦值給Byte數(shù)組BytReceived(),而不會(huì)出現(xiàn)歧義,其接收代碼如下:
Option Explicit
    Dim strData As String
Private Sub Form_Load()
    Text1 = ""
    Text2 = ""
    MSComm1.CommPort = 1
    MSComm1.InputMode = comInputModeBinary '數(shù)據(jù)通過 Input 屬性以文本形式取回。
    MSComm1.RThreshold = 1
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.PortOpen = True
End Sub
 
Private Sub MSComm1_OnComm() '接收數(shù)據(jù)
    Dim BytReceived() As Byte
    Dim strBuff As String
    Select Case MSComm1.CommEvent
        Case 2
            MSComm1.InputLen = 0
            Text1 = ""
            Text2 = ""
            Text3 = MSComm1.InBufferCount
            strBuff = MSComm1.Input
            BytReceived() = strBuff
            Dim i As Integer
            For i = 0 To UBound(BytReceived)
                If Len(Hex(BytReceived(i))) = 1 Then
                    strData = strData & "0" & Hex(BytReceived(i))
                Else
                    strData = strData & Hex(BytReceived(i))
                End If
            Next
            Dim sj As String
            sj = strData
            Text1 = sj
            Text2 = Chr(Val("&H" & sj))
            strData = ""
            '數(shù)據(jù)處理代碼
    End Select
End Sub
 
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/zdingyun/archive/2008/09/23/2969936.aspx
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB串口通信
24 個(gè)鮮為人知的 HTML 屬性
MSComm控件屬性詳解
用VC 6.0實(shí)現(xiàn)串行通信的三種方法
VC++中用通訊控件開發(fā)串行通信程序
CMSComm控件串口編程
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服