为什么我每次用mscomm.output输出的数据会返回到我用mscomm.input接受的数据呢??
也就是说
mscomm.input = mscomm.output + 我要的数据!!
先谢谢了!!

解决方案 »

  1.   

    你把串口的2脚跟3脚短接就可以 自己发送自己接收了
    发送  mscomm.output= "abc"    你可以在oncome 事件接收
       dim  a  as string    a=mscomm.input建议楼主先看看mscomm的一些属性
      

  2.   

    谢谢楼主的建议,mscomm的属性,我看了N次了还是没有明白,我知道2,3是收发脚的.但是我在用的时候不是要自己收发的.是我的pc和设备连的,我通过mscomm.output输出我的命令,在用mscomm.input读出设备的返回值,而在msocmm.input中却出现了我用mscomm.output发出去的命令和设备的返回,而命令是可以不要放回的,我不知道mscomm32是否发出去的命令肯定是要接受回来呢,还是可以通过那个东西来设置,或者其他情况,本来初学,望各位相告,谢谢,,,,
      

  3.   

    Dim str As String
       str = ""
       time1 = Now
       MSComm.Output = "命令1" + vbCrLf
       str = MSComm.Input
       Debug.Print "开始:" + str
       Do Until InStr(str, "OK") > 0 Or InStr(str, "ERROR") > 0 Or DateDiff("S", time1, Now()) > 2
           str = str + MSComm.Input
           DoEvents
       Loop
       Debug.Print "第二:" + str
       If InStr(str, "OK") <= 0 Then
          Exit Function
       End If
     
       调试的结果是:
       
       开始:
       第二:  命令1   设备的数据   按照我的想法结果是:
      
       开始:
       第二:设备的数据
       不知道各位能否看明白啊,,先谢了,,