Хочу сделать программу для обмена данными по СОМ-порту. Пишу на С. Отправка данных с компа работает нормально, а приема нет. Использую функции WriteFile и ReadFile. ReadFile возвращает 1, т.е. данные вроде бы считаны, но буфер пустой. Может, вопрос не по адресу, но вдруг кто сталкивался?
AHTOXA
Feb 29 2008, 21:14
Попробуйте задать в поиске слово "ReadFile".
ReadFile(hCom,RX_buffer,200,&bytes_read,NULL) ;
hCom - хендлер
RX_buffer массив (unsigned charRX_buffer[201])
bytes_read - сколько байт было прочитано( DWORD bytes_read)
И также незабывам об тайм аутах приёма и передачи, это нада указывать в инициализации порта.
(COMMTIMEOUTS m_CommTimeouts;) - обьявление типа
fSuccess = GetCommTimeouts (hCom, &m_CommTimeouts);
m_CommTimeouts.ReadIntervalTimeout =
m_CommTimeouts.ReadTotalTimeoutConstant =
m_CommTimeouts.ReadTotalTimeoutMultiplier =
m_CommTimeouts.WriteTotalTimeoutConstant =
m_CommTimeouts.WriteTotalTimeoutMultiplier =
fSuccess = SetCommTimeouts (hCom, &m_CommTimeouts);
А если хотите разобратся в этом сильно, подробно, то почитайте на сайте микрософт (msdn) про комуникационые порты там всё четко описано.