Windows не промывает COM-буфер
-
13-11-2019 - |
Вопрос
Я вижу довольно странное поведение от Windows, касающихся моих комкуровщиков.
Я использую 3 USB-последовательного преобразователя с фишками FTDI.Я открываю COM-порты с CreateFile
, и все это работает нормально.Все 3 порта имеют одинаковую конфигурацию, за исключением скоростей передачи.2 работа на 38400 и один на 9600.
Вот странная часть:
Я могу успешно выписать из порта 9600 и один из 38400 порта.Вторые порты 38400 кажутся буферизировать данные.Я подключался к этому порту с HyperTerminal и вижу, что на рабочих портах я немедленно получаю ответ и на «странный» порт, я только получаю данные, когда я закрываю свое приложение ...
У кого-нибудь еще пережил это?Как вы это решили?
Решение
Это своего рода выстрел в темноте ... но.
Проверьте настройки управления потоком для обоих концов «странного» соединения.Я видел странные вещи, подобные этому, когда контроль потока несоответствует.Акт закрытия порта очищает биты и позволяет буферическими данными потока.
Другие советы
немного работал с фишками FTDI, я бы предложил вам проверить расширенные настройки драйвера для каждого порта.Водитель поддерживает управление буферизацией, так и задержкой, чтобы позволить вам компромисс между высокой пропускной способностью и низкой задержкой.Так что проверьте настройки, которые работают и используйте то же самое для того, кто не (если они не одинаковы).
на боковом примечании, с помощью FTDI: S SO SOYATE API Вам не нужно отслеживать переназначение Com-Port и тому подобное.API очень похож на обычную Win32, но выставляет дополнительные параметры конфигурации.