«Последовательные порты USB» на базе 32u4 отказываются отправлять данные на ПК, если DTR на стороне программного обеспечения ПК не установлен на высокий уровень. Если программное обеспечение ПК не устанавливает для DTR значение true (высокое?), то Serial.print() на Arduino уходит в черную дыру, и программное обеспечение никогда не получает ответы от Arduino.
Мне нужен сторонний программный пакет для работы с моим устройством на базе Arduino Pro Micro. Это программное обеспечение устанавливает для DTR значение false, которое отлично работает со многими другими устройствами. Аруино отлично принимает данные с ПК, теряются только ответы ардуино.
Конечный результат... программное обеспечение может отправлять команды на мое устройство, но поскольку программное обеспечение ПК не устанавливает для DTR значение true (высокий?), мои ответы Serial.print() не принимаются... 32u4 по существу блокирует ответы, потому что DTR низкий ... даже если последовательные данные идут НА Arduino.
Микроконтроллеры PIC, Arduino UNO и т. Д. Не требуют, чтобы DTR был установлен на стороне ПК для работы последовательного порта USB, чипы FTDI, похоже, игнорируют DTR, поэтому это стороннее программное обеспечение отлично работает с большинством других устройств.
Модификация моего оборудования не вариант. Как я могу с помощью программного обеспечения/прошивки взломать это устройство, чтобы оно игнорировало DTR, чтобы стороннее программное обеспечение для ПК могло видеть последовательные данные с устройства?
Хм, при дальнейшем просмотре, копании исходного кода Arduino для серийного кода USB , мне кажется, что проверка DTR находится в строке 224 (первая строка size_t Serial_::write(const uint8_t *buffer, size_t size)
). Я не очень оптимистично отношусь к его отключению (вы, вероятно, зальете некоторый буфер), но, возможно, стоит попробовать.
микротерион
голодный разум
Венни
голодный разум