Arduino Pro Micro и Arduino IDE Serial Monitor: баг?

Тема в разделе "Arduino & Shields", создана пользователем sheynmanyu, 23 авг 2017.

  1. sheynmanyu

    sheynmanyu Нерд

    Что такого делает встроенный в arduino ide монитор порта, что после его запуска ардуина начинает передавать данные через USB (точнее через виртуальный СОМ, ибо именно через него ее видит моя Windows 10)?
    Проблема: есть моя программа, написанная на основе примера из Qt "serial port terminal". Есть скетч, написанный в ардуино IDE. Есть встроенный в IDE монитор порта.
    После включения питания на плате, моя программа отправляет команды ардуине. Та их принимает, обрабатывает, но в ответ молчит. А должна выдавать данные об угле поворота и времени.
    Если те же команды, которые передает моя программа ардуине, ручками передавать через встроенный монитор порта Arduino IDE, то в ответ ардуина передает запрошенные данные. После отключения встроенного монитора порта снова запускаю свою программу, и в ответ на ее запросы ардуина отвечает. Работает до отключения питания платы ардуино.
    Почему??? Что сделать, чтобы плата отвечала на запросы компьютера без дополнительного участия встроенного в IDE Arduino монитора?
    Код скетча в приложении.
     

    Вложения:

  2. b707

    b707 Гуру

    Больше похоже на то, что проблема где на стороне компа. Например, в настройке соединения в вашей программе Qt "serial port terminal". Скорость порта и конец строки выставлены так же, как в ардуино терминале?
    Либо в самой программе Qt "serial port terminal"
     
  3. sheynmanyu

    sheynmanyu Нерд

    Да. Слушала сниффером: различия только на этапе инициализации устройства - при подключении. В остальном пакеты идентичны. Не знаю, как теперь быть?
     
  4. b707

    b707 Гуру

    ну так разберитесь, в чем разница при подключении - там всего-то пара тройка параметров
     
  5. sheynmanyu

    sheynmanyu Нерд

    При этом ардуинка команды получает, обрабатывает, но ничего в Serial, соединенный с компом, не пишет. Но при этом пишет в Serial1. (Я запрограммировала, чтобы она дублировала данные с Serial на Serial1. Serial1 прослушиваю аппаратным анализатором.)
     
  6. sheynmanyu

    sheynmanyu Нерд

    Как мне выйти на уровень инициализации? Он от меня спрятан: я не знаю, где искать код библиотеки serial? И не знаю, как изменить в Qt пакеты для инициализации СОМ-порта?
     
  7. sheynmanyu

    sheynmanyu Нерд

    И кстати про монитор в IDE: какую бы я скорость сейчас ни выставила, ардуинка ее понимает и отвечает на запросы...
     
  8. sheynmanyu

    sheynmanyu Нерд

    Ответ был найден! Оказывается, надо включить RTS и DTR! После этого обмен идет!
     
    arkadyf нравится это.