Доброго времени суток. Стараюсь максимально точно передать проблему.
Разбираюсь с работой дисплея (вот он) на ST7735
Для отслеживания этапов работы скетча обычно использую вывод в сериал порт. Допустим самый простой скетч, который выводит при загрузке “Начало1”, спит 3 сек, выводит “Начало2”, спит 5 сек, инициализирует дисплей, запускает вывод в сериал порт строк из массива, и затем в цикле выводит какое-то слово.
Если без инициализации дисплея, то все выводится хорошо. Как только дисплей инициализируется, то возможны варианты:
- Если без сна выводить слова “Начало1” и “Начало2”, и инициализировать дисплей то сразу после закрякозябренной инфы про плату уже ничего не выводится.
- Если поставить сон между этими словами, то они выведутся и после инициализации дисплея выведется пару крякозябр и больше ничего. Возможно и в первом случае эти крякозябры выводятся, но как их распознать среди других - не знаю.
- Если закоментить инициализацию дисплея, то все работает.
Ниже пример тестового кода:
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#include <SPI.h>
// Обьявляю массив
char* myStrings[]={"This is string 1", "This is string 2", "This is string 3",
"This is string 4", "This is string 5","This is string 6"};
// Обьявляю пины
#define TFT_CS D2
#define TFT_RST D6
#define TFT_DC D1
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
void setup() {
Serial.begin(115200);
Serial.println("Begin1");
delay(3000);
Serial.println("Begin2");
delay(5000); // ставлю разные периоды сна, вдруг больше напечатается
// tft.initR(INITR_BLACKTAB); // вот тут, если раскоментить, перестает выводится в сериал порт
// небольшой массив для печати
for (int i = 0; i < 6; i++){
Serial.println(myStrings[i]);
delay(3000);
}
}
void loop() {
Serial.println("da");
delay(3000);
}
Хотелось бы понять в чем дело и как сделать, чтобы в сериал порт выводилось нормально и после инициализации дисплея.