我向串口发送了一串数据,比如为1024个字节,没有对接串行线。
怎么MSComm1.OutBufferCount一会就从1024变到0了呢?发出到缓冲区的数据怎么不见了呢?

解决方案 »

  1.   

    是啊,这是Mscomm控件内部自动情空的,为了防止缓冲区溢出.
    以前我也碰道过,不知道说的对不对.
    还有你在使用MSComm1.OutBufferCount之前,有没有用MSComm1.input读出,如果读出,也会为0
    不知道我理解对了吗?
      

  2.   

    没有用MSCOMM1.INPUT读出,我是想从计算机发到数控机床,单向传输
      

  3.   

    用了MSComm1.input之后就会读出数据,并同时清缓冲区的
      

  4.   

    我传输线都没有连接,怎么会用MSComm1.input这个命令
      

  5.   

    还有一个,你想下位机发送数据后,下位机是否已经读出.如果读出,可能也会为0,还有一个调整一下时间,你可以试验一下,当发出Mscomm1.Output后,马上查看或者等一会查看OutBufferCount,是否存在或丢失.
      

  6.   

    ....
        binBuff=space$(1024)
        get File,BinBuff
        MSComm1.Output = binBuff                  '发送数据    Do
            DoEvents
            msgbox MSComm1.OutBufferCount        ‘显示1024,但等一会,就为0了,跳出Do..Loop
        Loop Until MSComm1.OutBufferCount = 0          '等待,直到数据发送完毕
        '我没有接数据线,数据是发不出去的,
       .....