megajohn
Jan 21 2014, 14:38
добрый вечер.
Есть некая система: с одной стороны 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
Golikov A.
Jan 21 2014, 16:07
у знакомого было такое.
решили считать ошибкой драйвера со стороны винды.
увеличил таймаут чуть ли не до 46 секунд, вроде стало полегче. И добавили переконект на длительное отсутствие активности, кажется...
с цифрами могу наврать, то ли 16 то ли 46, почему то в голове всплывают обе цифры.
demiurg_spb
Jan 21 2014, 17:16
USB кабель качественный, с фильтрами?
Golikov A.
Jan 21 2014, 18:16
Цитата(demiurg_spb @ Jan 21 2014, 21:16)

USB кабель качественный, с фильтрами?
во во, год назад мой знакомый с тех же вопросов начинал
megajohn
Jan 23 2014, 06:57
Цитата(demiurg_spb @ Jan 21 2014, 21:16)

USB кабель качественный, с фильтрами?
фильтров не вижу, написано что экраннированный
вотвообщем, буду исследовать.
А пока сделал тестилку комппортов, на каждый порт открывается свой поток и пишет непрерывно три байта
Нажмите для просмотра прикрепленного файлапока лидирует MOXA ( что внутри стоит, не знаю ). STM32 на втором месте
вызывать
com_writefile_test.exe 4 60 69 76Нажмите для просмотра прикрепленного файла
Golikov A.
Jan 23 2014, 10:21
ваш 6 футовый, а у ТС 3 футовый....
megajohn
Feb 11 2014, 06:10
обвинения c STM32 снимаются, причина в
WinAPI Events