读书人

串口输入有关问题

发布时间: 2012-03-19 22:03:05 作者: rapoo

串口输入问题
我使用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

读书人网 >VB

热点推荐