UART ESP и MEGA2560

Может ли кто-нибудь помочь мне с некоторыми предложениями? Используя ESP8266 и MEGA2560 на интерфейсе UART, я хочу отобразить сообщение, полученное на мега-последовательном порте, на ЖК-дисплее, подключенном к нему на i2c. Проблема в том, что на ЖК-дисплее отображается какой-то странный неизвестный символ, а последовательный монитор, соответствующий мега, показывает это:

LED on LED OFF LED on LED OFF LED on LED OFF LED on LED OFF LED on LED OFF LED on LED OFF LED on LED OFF LED on LED OFF LED on LED OFF LED on 

когда должно отображаться это:

LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF
LED on
LED OFF

Код для ESP следующий:

int pinLed = 16;
void setup()
{

 Serial.begin(115200);
 Serial.begin(115200);
 pinMode(16,OUTPUT);
 delay(500);
}





void loop()
{

digitalWrite(16,HIGH);
Serial.print("LED on\n");
delay(5000);

digitalWrite(16,LOW);
Serial.print("LED OFF\n");
delay(5000);  

}

Код для мега такой:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include<SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x3F,20,4);

void setup() 
{

  Serial.begin(115200);
  lcd.init();
  lcd.backlight();
  while (!Serial)
  {

    Serial.print("Attempting to connect! ");
    Serial.print("Trying again...");
  }
}


  void loop()
{

  if (Serial.available()>0) 

  {
    char c = Serial.write(Serial.read());
    Serial.print(c);
    lcd.print(c);
  }
}

, 👍0


2 ответа


Лучший ответ:

2

Решение ваших проблем.

  1. Используйте println вместо print.
  2. Замените char c = Serial.write(Serial.read()); на char c = Serial.read();
,

-1

Использовать:

println *emphasized text* 

вместо

print *emphasized text*
,

используйте println вместо печати, @user55394

почему они должны использовать println?, @Juraj