Re[2]: com-port and timer
От: Alex Smirnov Россия  
Дата: 26.07.02 06:59
Оценка: 1 (1)
Здравствуйте Максим Алексейкин, Вы писали:

NS>>Я читаю из COM порта по таймеру,

NS>>но при остановке вылетает критическая ошибка.
NS>>Я останавливаю сначала таймер, затем закрываю порт.
NS>>Ошибка вылетает вне моей программы, где-то в системной DLL.
NS>>(Если порт не закрывать, то этой ошибки нет)


!!! Перед закрытием СОМа надобно его clear-ить (очищать ошибки!!!) что то
типа этого:

//*******************************************************
SetCommMask(m_hPort, 0);

while(m_dwReadThreadID != 0) Sleep(10); // поток чтения порта
m_hReadThread = 0;

EscapeCommFunction(m_hPort, CLRDTR);
PurgeComm(m_hPort, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
CloseHandle(m_hPort); m_hPort = 0;
//*******************************************************

Alex
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.