SerialEvent работает на нано, но не работает на mega

с нано и уно и мегой напрямую.
с нано и уно все ок.
для меги запаял схемку. 3.3 в 5в. проверил ее на нано . на нано пошло со схемкой тоже. на меге - нет.

@denissyslo,

Вы решили проигнорировать моё сообщение №15 и так и не выложили разумный код, который у Вас там типа работает на нане и не работает на меге. В результате, все обсуждают программу не видя её, запущенную на схеме, которую тоже никто не видел.

Так проблема не решится. Если Вы зашли потрындеть, то пожалуйста, трындите, но если хотите решить проблему, Вам таки придётся написать нормальный код, выложить его вместе со схемой и фото сборки.

Выбор за Вами.

Лично я прекращаю обсуждать код, которого не видел.

увидел, у него ключ под 13 патрон, естественно не взлетит, шутка…может и на Мегах пошли поддельные CH340?

ОК, это как? На каких скоростях? И где схема твоего конвертера уровней? Давай уже домучивать.

Ты писал, что при передаче от одноплатника в Мегу не моргает индикатор приема? Проверь еще раз. Этого не может быть, так как индикатор горит всегда, когда на ножке GND. Это проволочкой легко проверить. Сделай такую проверку. И еще - ты точно нормально соединяешь земли устройств? Может все дело в этом? :wink:

Не серчайте. код, который я выложил в начале обсуждения (котоырй на 300 строк) - рабочий. именно он не работает на меге, но работает на нано или уно.

Для теста я сейчас гоняю такой код:

void setup() {
  Serial.begin(115200);
  Serial1.begin(115200);
  Serial2.begin(115200);
}

void loop() {
  if (Serial.available()) {      // If anything comes in Serial (USB),
    Serial.write(Serial.read());   // read it and send it out Serial1 (pins 0 & 1)
  }

  if (Serial1.available()) {     // If anything comes in Serial1 (pins 0 & 1)
    Serial.write(Serial1.read());   // read it and send it out Serial (USB)
  }

    if (Serial2.available()) {     // If anything comes in Serial1 (pins 0 & 1)
    Serial.write(Serial2.read());   // read it and send it out Serial (USB)
  }
}

те, если что-то (вообще хоть что-то) пришло в уарт - сразу выводим это в уарт0. проще некуда…

С этим кодом абсолютно такая же беда - на уне и нане работает - на мегах - нет.

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

Если я подключаю этот же свисток к оранжу - то на свистке вижу запросы - все ок.

Далее я на оранже открываю консоль и ввожу команду echo ‘a’ > /dev/ttyS1 и наблюдаю символ а на компьютере черз свисток.

далее я заливаю скетч в нано и соединяю нано и оранж, даю команду echo ‘a’ > /dev/ttyS1 и наблюдаю символ а в мониторе порта нано.

Далее я повторяю это же самое с мегой - и ФИГ! она не принимает от оранжа символ а.

ну проще я не знаю куда.

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

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

да поидее ch340 в этой схеме вообще не причем. она нужна для uart-usb, а я же подключаюсь напрямую к уарту, те мимо ch340

ОДИН и тот же код работает на нао и уно и не работает на меге без каких либо правок. скорость 115200. конвертер - плата готовая от китайских друзей.

проволочкой соединил - лампочка горит. земли соеденены нормально. заводскими шлейфами. по крайней мере этими же шлейфами со свистком все ок.

на пины где сидит CH340? то-есть в параллель с CH-340 по выходу UART?

получается так. между 340 и уартом. как на всех ардуинах.

Так я Вам как раз и писал, что он тут бесполезен. А Вы проигнорировали. Дело Ваше.

  1. Как этот код может работать на Нано? Откуда у Нано Serial1 и Serial2? Вы же постоянно говорите, что у Вас один и тот же код там работает, а там - нет. Так покажите же его, наконец! Или нам на колени стать? Или, может, у Вас этот код на Нано работает?
  2. В строках №№ 8-10 (равно как и в строках 12-14 и 16-18) написано одно, а в комментариях - другое. Вы уверены, что надо пихать байт в тот же сериал с которого прочитали? И точно знаете, как это работает?

Давайте Вы успокоитесь в наконец выложите ТОТ КОД о котором постоянно трындите и перестанете, наконец, подвергать наши мозги сексуальному насилию.

1 лайк

Ну, вот опять двадцать пять!

Бл@дь, какой??? Мы его когда-нибудь увидим?

Впрочем, лично мне уже пох. Удачи Вам, всего доброго!

на нано было просто serial. Вы же прекрасно это понимаете. для меги я дописалсериал1 и сериал2. уже не знаю куда копать - решил еще и их проверить

это типовой пример из ардуино ide, который я поправил. на коменты можно не смотреть.

да

да

Этот код выводит обратно в сериал то, что будет прочитано с любого сериала (0,1,2). это для проверки и наглядности.

в начале на 300 строк…

тот к которому Вы придрались по поводу сериал1 на нано - это тоже код, который работает и там и там. Мы ведь понимаем, что дописанный сериал1 принципиально не менят картину?

давайте уважительно друг к другу относиться?

Что значит не меняет? Т.е. Вы подсовываете вместо одного кода другой и “понимаете”, что это принципиально не меняет картину? Ну, тогда точно дальше без меня, ибо я такого не понимаю. Впрочем, я уже и попрощался.

Попробуйте после инициализации Serial -ов , в setup , сделать задержку 300-500мс

Поехали дальше. На евгения - не отвлекайся.
Теперь возьми только вот такой код:

void setup() {
  Serial.begin(115200);
  Serial1.begin(115200);
 } 

void loop() {
  if (Serial1.available()) {      
    Serial.write(Serial1.read());  
  }

}

То есть выводи в консоль то, что приходит на Сериал1. к Сериал1 подключи одноплатник в котором просто выводи в цикле в порт 1,2,3,4…
А саму Мегу подключи к компу. И рассказывай, что видишь. Если есть осциллогаф - будет круто!

[quote="Дим-мычъ, post:56, topic:13854"]
Попробуйте после инициализации Serial -ов , в setup , сделать задержку 300-500мс
[/quote]
не помогло

сделал. соответственно одноплатник подключил на 18-19. результата нет. мега почему-то от него не принимает. осцилограф есть, но на работе. сейчас нет под рукой.
мне почему-то кажется. что проблема аппаратного характера.

Да.С уровнями. Повтори, плз тот же тест, но ВМЕСТО одноплатника подключи Нано с кодом, раз в секунду печатающим число.

void setup() {
  Serial.begin(115200);
   } 

void loop() {
static int i;
    Serial.print(i++);  
    delay(1000);
}