能给下位机发送命令,但读取不到数据代码如下:
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

解决方案 »

  1.   

    MSComm1.InputMode和MSComm1.Settings等这些参数设怎么设置的?
    你能保证MSComm1接收到数据是以chr(13)结尾吗?
    在a$ = MSComm1.Input后面加一句debug.print a$看看有没有接收到东西?
      

  2.   

    MSComm1.Settings没问题
    MSComm1.InputMode 无论0 1都是如此
    a$一直是空的
      

  3.   

    我对串口通讯也实在很陌生, MSComm1.Input不用放在OnComm事件中吗?
      

  4.   

    使用Bus Hound这个工具来监视你的串口,看数据真的是否有被发送或被接收.