Arduino uno + esp8266 + tft дисплей

Тема в разделе "ESP8266, ESP32", создана пользователем GHEB, 29 мар 2021.

  1. GHEB

    GHEB Нуб

    Добрый день

    Заметил один баг! Почему то перестаёт работать судя по всему SoftwareSerial

    Код (C++):
    /*TFT дисплей*/
    #include <Adafruit_ST7735.h>                        // Библиотека для дисплея
    Adafruit_ST7735 tft1=Adafruit_ST7735(9,5,7);        // Установка портов для дисплея
    /*ESP8266*/
    #include <SoftwareSerial.h>                         // Подключаем библиотеку работы с портами
    #define esp_bitrate 9600                            // Скорость передачи данных между arduino и ESP8266
    #define rxpin 10                                    // задаём порт RX
    #define txpin 12                                    // задаём порт TX
    SoftwareSerial espSerial( rxpin, txpin );           // RX, TX

    void setup()
    {
      espSerial.setTimeout(5000);                       // Ждём 5 секунд ответа от ESP (на случай если подвисать будет)
      Serial.begin(esp_bitrate);                        // Инициализация Serial порта
      espSerial.begin(esp_bitrate);                     // Инициализация Serial порта(2) ?
    }
    void loop()
    {
      //Первый вызов команды AT
      sendespSerial("AT");
      delay(2000);
      if (espSerial.find("OK"))
      {
        Serial.println("OK1");
      }
      else
      {
        Serial.println("ERROR");
      }
      //Второй вызов команды AT
      sendespSerial("AT");
      delay(2000);
      if (espSerial.find("OK"))
      {
        Serial.println("OK2");
      }
      else
      {
        Serial.println("ERROR");
      }

      //Подключаем tft
      Serial.println("tft display");
      tft1.initR(INITR_REDTAB);
      tft1.fillScreen(ST7735_YELLOW);


      //Третий вызов команды AT
      sendespSerial("AT");
      delay(2000);
      if (espSerial.find("OK"))
      {
        Serial.println("#########POBEDA!#########"); //если получил этот текст, ты победил, красава
      }
      else
      {
        Serial.println("#########GameOver#########"); //но ты получишь вот этот, почему то..
      }
    }

    //а это просто для вывода в мониторинг порта
    void sendespSerial(String cmd) {
      Serial.print("SEND: ");
      Serial.println(cmd);
      espSerial.println(cmd);
    }
     

    Почему всегда результат #########GameOver#########?
    444444433333333.png
     
    Последнее редактирование: 29 мар 2021
  2. alp69

    alp69 Форумчанин

    Так выведите в порт ответ при третьем вызове АТ и узнаете что он там шлет вместо "ОК".