У меня есть следующая проблема. У меня есть устройство последовательного порта, которое должно взаимодействовать с компьютером. На самом деле это доска Arduino Due, но я не думаю, что это связано.Последовательный последовательный порт Win API должен ждать после инициализации
Я использую CreateFile, чтобы открыть порт, а затем установить параметры с помощью GetCommState() & SetCommState() и GetCommTimeouts() & SetCommTimeouts().
Порт открыт правильно - проблем нет. Но сейчас я хочу проверить, подключено ли устройство. Поэтому я отправляю конкретное сообщение. Устройство должно реагировать определенным образом, чтобы я знал, что он подключен.
Теперь проблема: она работает, только если положить Sleep (1000) после создания порта (перед отправкой запроса подтверждения). Похоже, что WinAPI нужно некоторое время, прежде чем он сможет начать использовать порт. Поскольку решение сна обычно не используется, мне нужно найти какую-то альтернативу ...
От не работает Я имею в виду ReadFile раз. Время истекает, даже если тайм-аут установлен примерно на 5 секунд - обратите внимание, что интервал ожидания составляет только одну секунду. Таким образом, похоже, что запрос на рукопожатие даже не отправлен. Если я устанавливаю тайм-аут на 1 секунду и интервал ожидания на одну секунду, он работает. Если я установлю таймаут на 5 секунд, но сна нет, он не работает. См. Проблему?
Я собираюсь попробовать NetworkMonitor, но я вроде уверен, что проблема не связана с устройством ...
там в вероятно, ничто не мешает вам перепрограммировать прошивку в вашем Due, при условии, что у вас есть другое устройство, которое вы можете использовать в качестве программиста. Клон Pro-Mini составляет около 4 долларов США на Ebay ... Добавьте еще 4 или 5 для последовательной платы FTSI usb->, и у вас есть 2 для менее 15 долларов. – enhzflep