Uno R3 - загадка COM порта

ruben1
Offline
Зарегистрирован: 02.07.2015

У меня две разные платы №1 и №2. На первой чип порта Mega16U2, а на второй  ch340G. Драйвера для них установлены разные.

Скетчи из программы АРДУИНО загружаются нормально и обе нормально принимают данные из программы АРДУИНО. Загадка в том, что когда я передаю данные в первое устройство из своей программы, написанной в Дельфи, все работает как надо, а со вторым устройством проблемы: 
программа на РС все принимает без ошибок, а при передачи данных из РС в Arduino№2 устройство никак не реагирует. 

Казалось бы, тот же кабель, тот же драйвер, но одна программа передает (Ардуино), а другая нет.
Можно было бы грешить на саму программу, но с Arduino№1  никаких проблемм.

Может кто знает ответ на такую загадку? Помогите.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

 тот же кабель, тот же драйвер,

gena
Offline
Зарегистрирован: 04.11.2012

  Вероятно программа написанная на Дельфи "не дружит" с драйверами для платы номер 2.

ruben1
Offline
Зарегистрирован: 02.07.2015

Скорее всего так, но принимает без проблем.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

........   Казалось бы, тот же кабель, тот же драйвер,.........

Ню-ню, особенно про тот-же драйвер для разных ЮСБтоСериал расскажите поподробнее,
как вам удалось этого добиться и где вы нашли такой драйаер?

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

ruben1 пишет:

Скорее всего так, но принимает без проблем.

ну, так и смотри исходники программы - из чего конкретно она принимает и куда конкретно отсылает.

ruben1
Offline
Зарегистрирован: 02.07.2015

Это программа на РС, которая обменивается с Ардуино. На индикаторах приема и передачи данных все без ошибок.
Но при передаче данных Ардуино не реагирует...

Не обращайте внимание на показания, так как датчики отключены - они задействованы на друнгой плате. Если кому интересно, можете посмотреть проект в работе на другом микроконтроллере.
 

Новая программа работает, но только с Ардуино №1.

ruben1
Offline
Зарегистрирован: 02.07.2015

Клапауций 999 пишет:

ruben1 пишет:

Скорее всего так, но принимает без проблем.

ну, так и смотри исходники программы - из чего конкретно она принимает и куда конкретно отсылает.

Спасибо, дорогой. Мудрый совет.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

ruben1 пишет:

Спасибо, дорогой. Мудрый совет.

а вы типа ожидали что мы тут щас карты раскинем? на бубеного короля погадаем? туману напустим и хрустальный шар подожгем?

да кто вообще знает что вы там делаете, зачем и почему?

у меня вот принтер переодически сбивался. и сервис центр тиха с ума уже тронулся, все 3 смены, пытаясь разгадать мистику... оказалось что если взять одну каретку в руку и плавно попробовать ее подвигать, то можно почуствовать очень слабые щелчки... кто бы мог догаться что  один из 5 подшибников тупо похрустывает еле заметно под нагрузкой, ошибка накапливаеться и весь процесс печати уползает в непонятно куда..

ruben1
Offline
Зарегистрирован: 02.07.2015

trembo пишет:

........   Казалось бы, тот же кабель, тот же драйвер,.........

Ню-ню, особенно про тот-же драйвер для разных ЮСБтоСериал расскажите поподробнее,
как вам удалось этого добиться и где вы нашли такой драйаер?

Вопрос хороший, я тоже думал об этом. Сейчас постараюсь вспомнить.
Кажется здесь

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

ruben1 пишет:

Вопрос хороший, я тоже думал об этом. Сейчас постараюсь вспомнить.
Кажется здесь

http://www.arduined.eu/ch340g-converter-windows-7-driver-download/

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

ruben1 пишет:

Спасибо, дорогой. Мудрый совет.

т.е. ты не видишь очевидного - что, ком-порты плат отличаются аппаратно и софт с одним из них не работает?

смотри, как конкретно софт обращается к ком-порту.

ruben1
Offline
Зарегистрирован: 02.07.2015

Спасибо, но результат точно такой же - нет реакции Ардуино.

Я не получаю даже сообщения "Interrupt COM" о точке входа в serialEvent

void serialEvent() {
  Serial.println("Interrupt COM"); //для проверки, что событие произошло
  while (Serial.available()) {
     char inChar = (char)Serial.read(); 
    inputString += inChar;
    if (inChar == ';') {
      decoder(); //подпрограмма дешифрирования команд и данных
      inputString = "";
      break;
    } 
  }
}

 

ruben1
Offline
Зарегистрирован: 02.07.2015

Вопрос решен. Неоднозначность связи с COM портом была вызвана открытым Stream в компоненте Deplhi.

Radjah
Offline
Зарегистрирован: 06.08.2014

<толстота моде>

И сделай что-нибудь с интерфейсов своего поделия.

У меня глаза от одного скриншота вытекли.

</толстота моде>