добрый вечер.
Есть некая система: с одной стороны PC, с другой стороны STM32 с реализованным USB-VCP
На PC есть приложение которое тупо открывает VCP и пишет три байта [ WriteFile( hPort, ... ) ]
Но возникает одна трабла на 10тысяч-1млн раз - запись в порт не происходит. То есть если порт открыт без таймаутов [ timeouts = { MAXDWORD, 0, 0, 0, 0 }; ] и некая задача ждет когда VCP отправит три байта, то ждущая задача не дожидается, и выходит по таймауту 11Сек! Если порт открыт с таймаутами timeouts.ReadIntervalTimeout = 20; timeouts.ReadTotalTimeoutMultiplier = 10; timeouts.ReadTotalTimeoutConstant = 100; timeouts.WriteTotalTimeoutMultiplier = 10; timeouts.WriteTotalTimeoutConstant = 100;
то WriteFile возвращает FALSE и NumberOfBytesWritten = 0
а дальше всё восстанавливается
на стороне компа WinXP SP2 + драйвера VCP_V1.3.1_Setup
Кто-нибудь с таким сталкивался ? И если да, то как лечить ?
P.S. конечно эту тему можно отнести к "Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire" но мне кажется что это как раз ближе к ARM:STM32
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|