windows - 如何仅读取 Windows COM 端口上的可用数据?

标签 windows serial-port

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

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

目前,我正在使用 CreateFile() 和重叠 I/O 来执行读取,因此它们是异步的,但它们仍然会等到缓冲区填满后报告 I/O 已完成。

最佳答案

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

关于windows - 如何仅读取 Windows COM 端口上的可用数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/789353/

相关文章:

c++ - 将 SSL 客户端证书与 IXMLHTTPRequest3 一起使用

c++ - con.txt 和 C++

windows - puppet 特工: provider git is not functional on this host

c++ - Linux C++串口写入: Only one character written

linux - 为什么我的计算机在使用 USB 串行端口运行程序时一直暂停?

linux - 为什么只有在按回车后才能在串行连接中接收到字符?

c - 将数据从 Arduino 内部串行缓冲区移动到内存中

c - 是否可以在 Windows 上将 go-dll 加载到 c-dll 中?

C++ Linux (Ubuntu) 正确写入串口 (Arduino)

python - 打开 Python IDLE 并运行命令