Доброго времени суток. Мучаюсь с экраном на ST7735. Использую библиотеку Adafruit_ST7735.
по идее за заливку цветом отвечает параметр:
tft.fillScreen(ST77XX_BLACK);
Белый и черный получаются без проблем. Зеленый тоже. Но вот синий, красный и ещё несколько из библиотеки выводятся с ошибкой. Их всего-то 7 доп цветов:
строка 18, на дисплее наклейка какая, черная и зелёная бывают, с Али обычно чёрные идут, если 1.8
tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
// Use this initializer if using a 1.8" TFT screen:
// tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
// OR use this initializer if using a 1.8" TFT screen with offset such as WaveShare:
// tft.initR(INITR_GREENTAB); // Init ST7735S chip, green tab
// OR use this initializer (uncomment) if using a 1.44" TFT:
//tft.initR(INITR_144GREENTAB); // Init ST7735R chip, green tab
// OR use this initializer (uncomment) if using a 0.96" 160x80 TFT:
//tft.initR(INITR_MINI160x80); // Init ST7735S mini display
Обычно это признак того, что цвета кодируются в обратном порядке.
И, кстати, а что мешало сразу опубликовать всю таблицу “неправильных” цветов? Чтобы не было потребности задавать дополнительные вопросы.
Насчёт синего ничего не могу сказать, а вот с красным, рискну предположить, что часть библиотеки написана на языке INTERCAL. Там была команда для работы с монитором “передавать все цвета, тщательно избегая красного”. Может, она?
Так глубоко не разбираюсь. Но библиотека стандартная, подтянулась в Arduino IDE. Да и на самом деле, вряд ли была бы такая приписка. Ведь цветов в библиотеке не так много, все показал выше. И красный среди них. Да и из 8 цветов, только 3 правильных. Так что вряд ли. А как понять, что за языки участвовали в написании библиотеки, так вообще не знаю. Как и не знаю такого языка INTERCAL
В принципе, в первом сообщении я опубликовал все цвета из библиотеки, и сказал, что правильно отображаются только черный, зеленый и белый. С остальными проблема.
RGB - это всего три цвета: красный, зеленый и синий. Смешением этих цветов получаются все остальные. Поэтому черный (все выключено) и белый (все включено) будет работать всегда, с остальными цветами возможны варианты