VB mscomm不能得到返回值

来源:百度知道 编辑:UC知道 时间:2024/06/01 10:11:41
Option Explicit
Dim Buffer As String
Private Sub Form_Load()
MSComm1.CommPort = 7
MSComm1.Settings = "9600,n,8,1" '暂定无校验,数据位8位,停止位1位
'MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InputMode = comInputModeText
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.InBufferSize = 1024
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm() '接收数据
'Dim BytReceived() As Byte
Select Case MSComm1.CommEvent
Case 2
Buffer = Buffer & MSComm1.Input
' 我如何得到字符串的返回值
Debug.Print Buffer
End Select

If InStr(Buffer, "RING") > 0 Then
MsgBox "ok"
End If
End Sub
-------------------------------------

'注意串口通信中尽量少用MsgBox做提示 , 可打印到屏幕或输出到标签:
Option Explicit
Dim Buffer As String
Private Sub Form_Load()
MSComm1.CommPort = 7
MSComm1.Settings = "9600,n,8,1" '暂定无校验,数据位8位,停止位1位
'MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InputMode = comInputModeText
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.InBufferSize = 1024
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm() '接收数据
'Dim BytReceived() As Byte
Cls
Select Case MSComm1.CommEvent
Case 2
Buffer = Buffer & MSComm1.Input
' 我如何得到字符串的返回值
'Debug.Print Buffer
If InStr(Buffer, "RING") > 0 Then
Print Buffer
Buffer = ""
End If
End Select
End Sub

Private Sub MSComm1_OnComm() '接收数据
Dim d As Variant