Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: COM-порт
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
DimaC
Хочу сделать программу для обмена данными по СОМ-порту. Пишу на С. Отправка данных с компа работает нормально, а приема нет. Использую функции WriteFile и ReadFile. ReadFile возвращает 1, т.е. данные вроде бы считаны, но буфер пустой. Может, вопрос не по адресу, но вдруг кто сталкивался?
AHTOXA
Попробуйте задать в поиске слово "ReadFile".
Tcom
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) про комуникационые порты там всё четко описано.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.