UARD проблема MEGA 2560 pro

Добрый день. Есть две одинаковые маленькие платы меги 2560 про и с ними начались проблемы, стыкую с монитором nextion 7". На rx0,tx0 выводах воще висит высокий уровень и садит сигнал с монитора, переключил на второй сериал rx1,tx1 но с родными библиотеками SoftwareSerial.h и пр. работать не хочет.
“”"
SoftwareSerial mySerial1(19, 18);
void setup()
{
mySerial1.begin(9600);
:
:
pinMode(18, OUTPUT);
pinMode(19, INPUT);
}

void loop()
{
if(mySerial1.available() > 0)
{
;
даже сюда не входит, элементарно делаю проверку входа
digitalWrite(pinVD1, HIGH);
выход(лампочка не загорается!)
}

Осликом смотрю на РХ1 меги сигнал с монитора приходит 0х46 0х00. Такое ощущение что выходные пины либо перепутаны либо мега не та, либо х.з.
Помогите разобраться, кто данной таблеткой приходилось сталкиваться, и с работой с серийником.
Лет 5 назад, запускал станок на больших платках (наверно первые выпуски меги2560), тк на ней все работало и первый серийник и все остальные без проблем. Хотел переделать старые разработки под новые платы и затык получил(плата уже разработана) а переделывать - это время.

не пойму, какаято новая наркота появилась, чтоли, что с людьми происходит, что за бред они пишут Г-сподь всемогущий…

3 лайка

Можно ответить Вашими же словами? Ответ: «Такое ощущение что выходные пины либо перепутаны либо мега не та, либо х.з.». Скорее всего, именно последнее.

Если хотите какого-то другого ответа, пожалуйста, выложите:

  1. Короткий (но полный – запускаемый) код, который демонстрирует проблему. Причём, код выложите так как написано в пустом окне сообщения, а не так, как Вы это сделали выше.
  2. Схему соединений
  3. Фото (если надо, то несколько) на которых видно что и куда подключено.

Позже, могут потребоваться Ваши осциллограммы, но, для начала, выложите это.

На кой софтварный сериал на хардварном?

Прошу простить за “бред”, первый мой выход. Не пинайте сильно а можно и по делу. Что не понятно, если не знаете nextion monitor, так чо пихать, это не к вам вопрос. Ежели текстовка ардуины, -

void setup() 
{
  Serial.begin(9600);
void loop() 
{
  
  if(Serial1.available() > 0)
  {
     digitalWrite(pinVD1, HIGH); 
    digitalWrite(13,HIGH);

Код не полный.

Пин pinVD1 и светодиод на ардуинке не реагируют на сигнал по входу. По идее условие иф будет срабатывать на приход в буфер серийника чего либо.
Схема, ну чо тут рисовать, пока не могу (еще не знаю как этот сделать). А на словах, дисплей соединен с ардуней 1-+ 5в. 2-rx, 3-tx, 4-gnd. монитор rx → tx mega, tx → rx соответственно. Ежели без фоток никак, то попозже постараюсь сделать.

На приход первого байта. Потом никаких реакций не будет. Ибо а) нигде в коде нет реакции на отсутствие данных в буфере и б) нигде в коде нет считывания данных из буфера и, соответственно, очистки его

Не полный, ладно вот

void loop() 
{
  
  if(Serial1.available() > 0)
  {
    //delay(1000);
    digitalWrite(pinVD1, HIGH); //dt += inChar;
    digitalWrite(13,HIGH);
    delay(5000);
    digitalWrite(pinVD1, LOW); //dt += inChar;
    digitalWrite(13,LOW);
    Serial1.flush();
    String str;
    while(Serial1.available())
    {
      str=char(Serial1.read());
      delay(5000);
      digitalWrite(pinVD1, HIGH); 
      digitalWrite(13,HIGH);
      delay(5000);
      digitalWrite(pinVD1, LOW);
      digitalWrite(13,LOW);
      Serial1.flush();
      
    }
    /

это не компилируется.

Одолжение решили сделать? Если я ничего не путаю - это у вас проблема, а не у меня…

И да, опять не угадали - код не полный.

Завтра сделаю отдельный скетч и выложу урезанную версию. Спасибо за участие.

Одолжение решили сделать?
да нет никакого одолжения, просто уже голова закипает, не ругайтесь.

И не должен.
Вы уж определитесь, с каким последовательным портом Вы хотите работать: с аппаратным или с программным.

Да я перепробовал и так и этак. Реакции 0.

Вот в этом и проблема.