Приложение на Визуал Бейсике с компа передает по УСБ короткие сообщения (20 байт) в Ардуино. Обратной передачи не требуется. И в приложении на компе - приема вообще не прописано. Все нормально работает. Но если же Ардуино все-таки пошлет любое сообщение в канал связи, - при начале следующего цикла передачи с компа, приложение на компе аварийно завершается. Бога ради, киньте идею куда смотреть. Уже мозги сплавил.
Если после Ардуиновской передачи в канал, в приложении на компе выполнить процедуру "выключить порт-включить порт" - то порт нормально шлет данные и приложение работает, пока Ардуина снова не "звякнет" в канал. Так что переходники вряд ли виноваты. Но выключать-включать порт постоянно - это не выход. А если понадобится двусторонняя передача ?!
выше написано, что в таком случае программа аварийно завершается. Это не нормальная реакция. У нас же rs232? Должно работать. Проблема в usb, т.к. там нельзя одновременно передавать, поэтому предположил, что где-то реализовано плохо. только "запрос-ответ". Не удивлюсь если бейсик косячит. Я находил некоторые ошибки у него. (ln(-x) = - ln |x|)
Драйвер USB в приложении на компе очищает конечные точки? Мне кажется, что затык там происходит - драйвер ждёт реакции программы и повисает. Попробуй вставить обработчик-пустышку.
1. Пока в Rx ввод порта компа извне ничего не посылали - передача и программа идут нормально. Если посылали - программа продолжает работать (мы же не обязаны читать входящие данные) нормально сколько угодно, пока не понадобится передать данные. Тут программа аварийно завершается с кодом ошибки Run-time error 8021. Если перед каждой передачей делать "выключил-включил порт" - всё работает нормально, но - это не нормально. 2. Насчет Бейсика - не знаю. Видел нормальный обмен по UART на VBA (в Экселе). Пробовал ставить перед каждой передачей прием данных - всё то же самое.
Спасибо. Установил себе. Показала такие же затыки. Значит дело не в Бейсике. Зато понял как поделить задачу на куски, чтоб решать поэтапно. Когда определюсь с результатами-отпишусь.