Киньте идею.Затыкается Ком-порт компа.

Тема в разделе "Проводная и беспроводная связь", создана пользователем Ariadna-on-Line, 1 май 2019.

  1. Приложение на Визуал Бейсике с компа передает по УСБ короткие сообщения (20 байт) в Ардуино. Обратной передачи не требуется. И в приложении на компе - приема вообще не прописано. Все нормально работает. Но если же Ардуино все-таки пошлет любое сообщение в канал связи, - при начале следующего цикла передачи с компа, приложение на компе аварийно завершается. Бога ради, киньте идею куда смотреть. Уже мозги сплавил.
     
    Последнее редактирование: 2 май 2019
  2. Daniil

    Daniil Гуру

    Может с дровами что-то или китайский переходник(ft232 и т.п.)?
     
  3. Если после Ардуиновской передачи в канал, в приложении на компе выполнить процедуру "выключить порт-включить порт" - то порт нормально шлет данные и приложение работает, пока Ардуина снова не "звякнет" в канал. Так что переходники вряд ли виноваты. Но выключать-включать порт постоянно - это не выход. А если понадобится двусторонняя передача ?!
     
    Последнее редактирование: 2 май 2019
  4. Daniil

    Daniil Гуру

    выше написано, что в таком случае программа аварийно завершается.

    Это не нормальная реакция. У нас же rs232? Должно работать. Проблема в usb, т.к. там нельзя одновременно передавать, поэтому предположил, что где-то реализовано плохо.

    только "запрос-ответ".

    Не удивлюсь если бейсик косячит. Я находил некоторые ошибки у него. (ln(-x) = - ln |x|)
     
  5. parovoZZ

    parovoZZ Гуру

    Драйвер USB в приложении на компе очищает конечные точки? Мне кажется, что затык там происходит - драйвер ждёт реакции программы и повисает. Попробуй вставить обработчик-пустышку.
     
  6. 1. Пока в Rx ввод порта компа извне ничего не посылали - передача и программа идут нормально. Если посылали - программа продолжает работать (мы же не обязаны читать входящие данные) нормально сколько угодно, пока не понадобится передать данные. Тут программа аварийно завершается с кодом ошибки Run-time error 8021. Если перед каждой передачей делать "выключил-включил порт" - всё работает нормально, но - это не нормально.
    2. Насчет Бейсика - не знаю. Видел нормальный обмен по UART на VBA (в Экселе).
    Пробовал ставить перед каждой передачей прием данных - всё то же самое.
     
  7. Vovka

    Vovka Гик

    Попробуй вот этой программой пообщаться с Ардуиной
     
  8. Спасибо. Установил себе. Показала такие же затыки. Значит дело не в Бейсике. Зато понял как поделить задачу на куски, чтоб решать поэтапно. Когда определюсь с результатами-отпишусь.
     
  9. Vovka

    Vovka Гик

    Значит, как и говорилось выше, проблема либо в драйвере, либо в железе...