Windows не сбрасывает COM-буфер - PullRequest
0 голосов
/ 13 мая 2011

Я вижу довольно странное поведение из окон относительно моих COM-буферов.

Я использую 3 USB-Serial Converter с FTDI-чипами.Я открываю ком-порты с CreateFile, и все работает нормально.Все 3 порта имеют одинаковую конфигурацию, за исключением скорости передачи данных.2 работают на 38400, а один на 9600.

Вот странная часть:

Я могу успешно записать данные из порта 9600 и одного из порта 38400.Второй порт 38400, похоже, буферизует данные.Я подключился к этому порту с помощью Hyperterminal и вижу, что на рабочих портах я сразу получаю ответ, а на «странном» порту я получаю данные только при закрытии приложения ...

Кто-нибудь еще испытывалэтот?Как вы решили это?

Ответы [ 2 ]

0 голосов
/ 15 мая 2011

Немного поработав с чипами FTDI, я бы посоветовал вам проверить расширенные настройки драйвера для каждого порта. Драйвер поддерживает как буферизацию, так и управление задержкой, чтобы обеспечить компромисс между высокой пропускной способностью и низкой задержкой. Поэтому проверьте работающие настройки и используйте те же, что и другие (если они не совпадают).

В дополнение к этому, используя собственный FTDI: API , вам не нужно отслеживать переназначение COM-портов и тому подобное. API очень похож на обычный Win32, но предоставляет больше возможностей конфигурации.

0 голосов
/ 13 мая 2011

Это своего рода выстрел в темноте ... но.

Проверьте настройки управления потоком для обоих концов "странного" соединения.Я видел странные вещи, как это, когда управление потоком не соответствует.Акт закрытия порта очищает биты и позволяет буферизованным данным течь.

...