我有一个串行(COM)端口的文件句柄。我需要立即读取所有可用数据,而不必等待发送其他数据。

如何确定有多少数据可用?我可以调用SetCommMask(myHandle, EV_RXCHAR),然后等待一个事件告诉我有一些数据可用,但这无法告诉我现在不阻塞就可以读取多少数据。

目前,我正在使用CreateFile()和重叠的I/O执行读取,因此它们是异步的,但它们仍要等到缓冲区填满后才能将I/O报告为完整。

最佳答案

ClearCommError()函数就是您要寻找的功能-它在COMSTAT结构中返回输入和输出队列中有多少个字符。

09-12 18:47
查看更多