Полностью очистить последовательный буфер модемного модуля во время чтения
У меня есть модуль модема GSM, в первую очередь я попробовал его из приложения microcom. и все было хорошо.Во-вторых, я реализовал свой собственный код в c. Если я передаю команды AT, я могу прочитать это и его ответ много раз. Как я могу очистить порт? Кажется, иногда я могу читать порт почти до бесконечности.:-)
Я старался не учитывать это, но это вызывает путаницу при обработке ответов.
Я использую Linux.
Тамас
1 ответ
Решение
Ты можешь использовать tcflush()
очистить вход, выход или оба.
tcflush () отбрасывает данные, записанные в объект, на который ссылается fd, но не переданные, или данные, полученные, но не прочитанные, в зависимости от значения queue_selector:
TCIFLUSH flushes data received but not read. TCOFLUSH flushes data written but not transmitted. TCIOFLUSH flushes both data received but not read, and data written but not transmitted.