串口输入问题
我使用mscomm与机器通讯连接,每次发出读状态命令后,都没反应,需再执行一次发出读状态命令,才能看到反馈信息
请高手看看是啥问题?
Private Sub Command1_Click()
Dim a As String
a = "*stat?" & vbCrLf ' 这是查询仪器状态命令,应该回复“STBY”
MSComm.Output = a
Dim i As Integer
Dim buf$
buf = Trim(MSComm.Input)
If Len(buf) = 0 Then
txtreceive.Text = ""
Else
txtreceive.Text = buf
End If
End Sub
串口设置如下:
MSComm.InBufferSize = 1024 ' 设置接收缓冲区为1024字节
MSComm.OutBufferSize = 512 ' 设置发送缓冲区为4096字节
MSComm.InBufferCount = 0 ' 清空输入缓冲区
MSComm.OutBufferCount = 0 ' 清空输出缓冲区
MSComm.RThreshold = 0
MSComm.InputLen = 0 ' 每次从接收缓冲区输入所有的字节
MSComm.InputMode = 0 '以字符方式发送
谢谢!
[解决办法]
Dim a As String
Dim i As Integer
Dim buf As String
a = "*stat?" & vbCrLf ' 这是查询仪器状态命令,应该回复“STBY”
MSComm.Output = a
Loop Until MSComm.InBufferCount >= 4
buf = Trim(MSComm.Input)
txtreceive.Text = buf