请问 串口如何非按时间 轮询读取数据读,而是 实时读取数据?
就是说下面有消息上来了,不是我隔1秒轮询来接收,而是立刻就上来。Private Sub Timer1_Timer() Dim tmp_str As String
tmp_str = MSComm1.Input
Sleep 1000
Debug.Print tmp_strEnd Sub这个是轮询程序,实时如何写呢?
就是说下面有消息上来了,不是我隔1秒轮询来接收,而是立刻就上来。Private Sub Timer1_Timer() Dim tmp_str As String
tmp_str = MSComm1.Input
Sleep 1000
Debug.Print tmp_strEnd Sub这个是轮询程序,实时如何写呢?
Select Case MSComm1.CommEvent
' Handle each event or error by placing
' code below each case statement' 错误
Case comEventBreak ' 收到 Break。
Case comEventCDTO ' CD (RLSD) 超时。
Case comEventCTSTO ' CTS Timeout。
Case comEventDSRTO ' DSR Timeout。
Case comEventFrame ' Framing Error
Case comEventOverrun '数据丢失。
Case comEventRxOver'接收缓冲区溢出。
Case comEventRxParity' Parity 错误。
Case comEventTxFull '传输缓冲区已满。
Case comEventDCB '获取 DCB] 时意外错误 ' 事件
Case comEvCD ' CD 线状态变化。
Case comEvCTS ' CTS 线状态变化。
Case comEvDSR ' DSR 线状态变化。
Case comEvRing ' Ring Indicator 变化。
Case comEvReceive ' 收到 RThreshold # of
chars.
Case comEvSend ' 传输缓冲区有 Sthreshold 个字符 '
'
Case comEvEof ' 输入数据流中发现 EOF 字符
'
End Select
End Sub
Dim Buffer As String
Do
Buffer = MSComm1.Input
'UNICODE 直接链接 ,如果是纯英文,则转换到 vbFromUnicode
Text1.Text = Text1.Text & Buffer ' StrConv(StrConv(Buffer, vbUnicode), vbFromUnicode)
DoEvents
Buffer = ""
If bb = True Then Exit Do: Exit Sub
If MSComm1.InBufferCount = 0 Then Exit Do
Loop
End SubPrivate Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
bb = True
End
End Sub