ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1123431 Топик полностью
Kceния (11.08.2021 08:04, просмотров: 298) ответил UniSoft на Windows не умеет автоматически переоткрывать порт.
У вас файл, ассоциированный с VCP, переоткрывается. Это действительно надо делать со стороны программы. Но инициализацию USB-порта Windows делает сама, когда в него что-то втыкают. Однако проблема чаще бывает в другом - на плате линию от PA12 подтягивают резистором к питанию. Тогда при после ресета MK забывает свой прежний коннект, а Windows всё еще его помнит и повторную инициализацию соединения не вызывает. Т.е. порт остается открытым, и файл, ассоциированный с ним, 

тоже, а передачи нет как нет. Исправить положение можно только при повторной инициализации, а для этого коннект надо сперва разорвать, а файл открыть заново.

А что касается мессаджа WMDeviceChange, то мне не удается сходу определить, мое устройство отсоединилось или какое-то другое (приходится этот вопрос специально решать через ухо). В этом смысле мне ваш код интересен, а именно, откуда вы достали имя девайса. А строка "PDEV_BROADCAST_PORT lpdbpr = reinterpret_cast", полагаю, обгрызена вами с конца, а потому не дает возможности определить, откуда взялся lpdbpr, из которого выбирается dbcp_name.