在Windows下使用C语言,是否有一种非阻塞函数可以返回串口的当前rx队列长度?
我看到的所有示例都只是调用ReadFile
函数,该函数会一直阻塞直到超时,所以我想知道在读取之前是否有可能检查缓冲区中是否有数据?
例如,针对每个字符,我可以简单地执行以下操作:
void ReadCharacter(char *theCharacter)
{
DWORD numBytesRead = 0;
while (numBytesRead == 0)
{
ReadFile(comPorthandle,
theCharacter,
sizeof(char),
&numBytesRead,
NULL);
}
}
但是,是否可能有像这样的东西呢?
int numBytesRx = GetNumBytesRx(&portHandle);
if (numBytesRx > 0)
Read(&portHandle, targetBuffer, numBytesRead);