Public Buffer As Variant
Buffer=MSComm.Input
若值为ATM 111
在调试状态下Buffer值为ATM 111
断点拿掉输出Buffer的值第一次为A第2次为TM 111
在网上查找资料 Input是字节取值 我在程序里用了timer控件 会不会是这个原因捏。 如果是该怎么解决捏。求大神相助

解决方案 »

  1.   

    http://download.csdn.net/source/1262066
      

  2.   

    这和你的inputLen有关系
    你的inputlen很可能是:0inputlen用来定义input命令每次读取inbuffercount中的参数的个数,为:0代表一次全部读取缓冲区的数据。
    你的情况应该是,第一次input时,缓冲区中正好只有A,第二次input时,TM 111都送达缓冲区了。建议楼主发送读命令后,延迟片刻(比如30ms)在执行input,这样确保下位即数据完全返回到串口接收缓冲区中。大致如下:mscP.output="读命令"
    lngP=Gettickcount
    do
       DoEvents
    loop until gettickcount-lngP>=30
    strRead=mscP.input