能给下位机发送命令,但读取不到数据代码如下:
Private Sub Command1_Click()Dim sts As StringIf MSComm1.PortOpen = False Then MSComm1.PortOpen = True 'open the lineCall CMD_SEND("WRSTA") 'OK!下位机可以启动
Call STS_RD(sts) '读不进来数据, STS=""If sts = "OK" Then Text1.Text = "Start Measurement"End Sub
Private Sub CMD_SEND(send_cmd As String)Dim d$d$ = send_cmd + Chr$(13)
MSComm1.Output = d$End Sub
Private Sub STS_RD(ByRef status As String)Dim a$, b$, d$
Dim L As IntegerDo
DoEvents
'Text1.Text = Text1.Text + "before input"
a$ = MSComm1.Input
'Text1.Text = Text1.Text + "after input"
b$ = Right(a$, 1)
d$ = d$ + a$
Loop Until (b$ = Chr$(13)) '陷入死循环L = Len(d$)
status = Mid$(d$, 1, L - 1)
End Sub
Private Sub Command1_Click()Dim sts As StringIf MSComm1.PortOpen = False Then MSComm1.PortOpen = True 'open the lineCall CMD_SEND("WRSTA") 'OK!下位机可以启动
Call STS_RD(sts) '读不进来数据, STS=""If sts = "OK" Then Text1.Text = "Start Measurement"End Sub
Private Sub CMD_SEND(send_cmd As String)Dim d$d$ = send_cmd + Chr$(13)
MSComm1.Output = d$End Sub
Private Sub STS_RD(ByRef status As String)Dim a$, b$, d$
Dim L As IntegerDo
DoEvents
'Text1.Text = Text1.Text + "before input"
a$ = MSComm1.Input
'Text1.Text = Text1.Text + "after input"
b$ = Right(a$, 1)
d$ = d$ + a$
Loop Until (b$ = Chr$(13)) '陷入死循环L = Len(d$)
status = Mid$(d$, 1, L - 1)
End Sub
你能保证MSComm1接收到数据是以chr(13)结尾吗?
在a$ = MSComm1.Input后面加一句debug.print a$看看有没有接收到东西?
MSComm1.InputMode 无论0 1都是如此
a$一直是空的