在Win32的C语言中,是否有API调用可以刷新(清空)COM端口接收缓冲区的内容?我只能找到清空发送缓冲区的函数。
`PurgeComm()'可以清空串口的发送和接收缓冲区,并且中止任何正在进行的读写操作。要对一个端口执行所有操作,可以这样说:
PurgeComm(hPort, PURGE_RXABORT|PURGE_TXABORT|PURGE_RXCLEAR|PURGE_TXCLEAR)
ClearCommError()
。
ReadFile()
可用于通过将所有可用字节读入废缸中来清空仅 Rx 缓冲区和 FIFO。请注意,您可能需要具有“不自然”的知识才能正确地调整该缓冲区的大小,或重复 ReadFile()
调用,直到它没有更多内容为止。清空接收缓冲区没有意义,要从串口接收缓冲区获取数据,只需在串口句柄上调用ReadFile即可
FlushFileBuffers同步强制传输发送缓冲区中的数据
PurgeComm清空缓冲区而不进行传输或接收(基本上是删除操作)