我有一个串行 (COM) 端口的文件句柄。我需要立即读取可用的任何数据,而不是等待发送其他数据。
如何确定有多少数据可用?我可以调用 SetCommMask(myHandle, EV_RXCHAR)
,然后等待事件告诉我某些数据可用,但这不会告诉我现在可以使用多少数据无阻塞地读取。
目前,我正在使用 CreateFile() 和重叠 I/O 来执行读取,因此它们是异步的,但它们仍然会等到缓冲区填满后报告 I/O 已完成。
最佳答案
ClearCommError() 函数就是您正在寻找的 - 它在 COMSTAT 结构中返回输入和输出队列中有多少个字符。
关于windows - 如何仅读取 Windows COM 端口上的可用数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/789353/