Последовательный виртуальный COM-порт USB: чтение не работает, но запись работает

Я использую встроенное аппаратное обеспечение (от TI: Piccolo Control Stick xxx69), которое использует FTDI USB к оборудованию последовательного конвертера.

На ПК у меня есть простое приложение VC ++, которое пытается установить связь с оборудованием через виртуальный COM-порт (VCOM: обычно COM7).

  • Я могу правильно подключиться к порту.

  • Я могу отправить данные из приложения / ПК на оборудование, и они получены правильно. (Таким образом, Tx на ПК работает нормально), приложение сначала открывает соединение, используя createfile(... ... ...) API, а затем использует writefile(.. ... ..) windows apis для записи в порт напрямую.

  • Удивительно, но я не могу читать с последовательного порта на приложение. Когда я звоню readfile(... ... ...) api, возвращает статус TRUE, но читаются нулевые байты. Я попытался использовать программное обеспечение монитора API, которое показывает API ядра Ntreadfile(... ... ...), возвращает ошибку как STATUS_TIMEOUT" [0x00000102], Это удивительно, потому что запись работает, а чтение — нет, хотя данные есть в сети.

Данные находятся на линии, потому что, когда я использую обычное программное обеспечение гипертерминала, я могу правильно прочитать данные с контроллера и это видно. [Со стороны контроллера все в порядке, потому что мы можем видеть данные на гипертерминале.

Я не программист Windows, так как имею дело с микроконтроллерами. Таким образом, некоторая помощь в решении этой проблемы будет очень полезна.

С уважением,

-Варуна

Вот Ссылка

0

Решение

Вопрос решен. Мне пришлось добавить wait, пока InQueue> 0 (это означает, что в приемном буфере есть по крайней мере 1 байт) или тайм-аут (как безопасный выход) закончился. это будет блокировка вызова, но на данный момент это нормально для моего приложения. waitComm () не работает для меня здесь.

образец фрагмента:

while(1)
{
ClearCommError((HANDLE)*h_drv, (LPDWORD)&Err, &CST);

if((CST.cbInQue >0)||(count >1000000))
break;

count++;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]