怎样清除输入缓冲中的数据?是用PurgeComm吗?我是首先给串口写了一个数据,接下来再写一个数据,然后再读串口数据。我现在用自发自收的方式测试,两次写入的数据都读了出来,但我只想接收第二次发送的数据。所以我想在第一次发送数据后,清除输入缓冲,请问该怎样做?

解决方案 »

  1.   

    PurgeComm()是一个清除函数,它可以中止任何未决的后台读或写,并且可以冲掉I/O缓冲区.BOOL PurgeComm(HANDLE hFile,DWORD dwFlags);dwFlages的有效值: 
    PURGE_TXABORT: 中止后台写操作
    PRUGE_RXABORT: 中止后台读操作 
    PRUGE_TXCLEAR: 清除发送缓冲区
    PRUGE_RXCLEAR: 清除接收缓冲区
      

  2.   

    我在第一次发送后用PurgeComm清除了一下,然后继续写第二个命令,然后读,好像PurgeComm没有起到什么作用,还是能够读出第一次发送的数据
      

  3.   

    PurgeComm起作用了,但是我第一次发送的数据结尾是回车,使用PurgeComm之后不能够清除掉最后一个字节,也就是回车符,在读取的时候能够将第一次发送的数据中的回车符读出来,这是什么原因?