|
#1
|
|||
|
|||
Очистка com-порта
Использую функцию WinAPI PurgeComm(hPort,PURGE_TXABORT) для очистки буфера ком-порта, но он не очищается, в чем проблема может быть?
|
#2
|
||||
|
||||
Почему ABORT то?
ABORT сбрасывает операцию чтения/записи (RX/TX) для очистки буфера используй PURGE_TXCLEAR или PURGE_RXCLEAR в зависимости от того какой буфер чистить хочешь. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
использовал в таком виде
PurgeComm(hPort,PURGE_TXABORT or PURGE_RXABORT or PURGE_TXCLEAR or PURGE_RXCLEAR); не работает |
#4
|
||||
|
||||
В MSDN еще советуют FlushFileBuffers, попробуй.
Я для очистки просто вычитываю все из порта. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
murdenis (27.06.2012)
|
#5
|
|||
|
|||
Тот же результат, придется чтением вычищать
|
#6
|
|||
|
|||
Правильно ли я описал работу ком-портов:
есть 2 порта COM1 и COM2 (соединены между собой для приема-передачи данных) открыли COM1, СОМ2 не открываем, в СОМ1 отправили данные Д1, эти данные хранятся в передающем буфере порта СОМ1. открыли СОМ2, в принимающем буфере пусто. в СОМ1 отправили данные Д2; считали данные из порта СОМ2 и получили Д1Д2. |