在Win32 C中是否有一个API调用来刷新(转储)COM端口接收缓冲区的内容?我只能找到刷新传输缓冲区的函数.
`PurgeComm()'可以删除Tx和Rx缓冲区中的任何一个或两个中的所有字符,并中止端口上任何挂起的读取和/或写入操作.要对端口做所有事情,请说:
PurgeComm(hPort, PURGE_RXABORT|PURGE_TXABORT|PURGE_RXCLEAR|PURGE_TXCLEAR)
您可能还希望确保已经处理或明确忽略了端口上的任何挂起错误,可能还有ClearCommError()
.
ReadFile()
可以通过将所有可用字节读入废液缓冲区来仅清空Rx缓冲区和FIFO.请注意,您可能需要具有"不自然"的知识才能正确调整缓冲区的大小,或者重复ReadFile()
调用直到无法再说.
但是,读取缓冲区以刷新它只有在首先"合理地"设置COMMTIMEOUTS或读取将阻塞直到填充缓冲区时才有意义.