我用WaitCommEvent等待串口发送的数据(用同步方式)如果想在一定时间内收不到数据就结束等待,请问如何实现.我用SetCommMask(hCOM,0)不好使
急!急!急!

解决方案 »

  1.   

    试试PurgeComm看行不行
    PurgeComm
    The PurgeComm function discards all characters from the output or input buffer of a specified communications resource. It can also terminate pending read or write operations on the resource. BOOL PurgeComm(
      HANDLE hFile,  // handle to communications resource
      DWORD dwFlags  // action to perform
    );
    Parameters
    hFile 
    [in] Handle to the communications resource. The CreateFile function returns this handle. 
    dwFlags 
    [in] Specifies the action to take. This parameter can be one or more of the following values. Value Meaning 
    PURGE_TXABORT Terminates all outstanding overlapped write operations and returns immediately, even if the write operations have not been completed. 
    PURGE_RXABORT Terminates all outstanding overlapped read operations and returns immediately, even if the read operations have not been completed. 
    PURGE_TXCLEAR Clears the output buffer (if the device driver has one). 
    PURGE_RXCLEAR Clears the input buffer (if the device driver has one). 
    Return Values
    If the function succeeds, the return value is nonzero.If the function fails, the return value is zero. To get extended error information, call GetLastError. Res
    If a thread uses PurgeComm to flush an output buffer, the deleted characters are not transmitted. To empty the output buffer while ensuring that the contents are transmitted, call the FlushFileBuffers function (a synchronous operation). Note, however, that FlushFileBuffers is subject to flow control but not to write time-outs, and it will not return until all pending write operations have been