Следующее решение не является лучшим, но оно подходит для многих случаев:
Считывание большого количества байтов из последовательного порта, делая его пустым. Например:
ReadFile (порт, ТМП, 4096, & ioread, NULL);
tmp []: переменная, которая будет содержать данные, которые вам не нужны (сбросить данные)
ioread: число прочитанных байтов
Таким образом, выше будет читать 4096 байт из последовательного порта. Вы можете увеличить число, чтобы убедиться, что после оператора вы получите чистый порт.
P.S. Я использовал это с Visual Studio 2010, C ++, Windows 7 - 64 бит