LVGL v8.2 на проблеме цвета ESP32-S3 ILI9341 TFT LCD Arduino IDE
У меня ЖК-экран ILI9341 320x240px TFT который я использую с модулем ESP32-S3-wroom-1.
Я протестировал с TFT_eSPI и работает нормально, но при использовании LVGL я вижу странные артефакты по краям.
Я использую Arduino IDE
Начал со скетча
https://github.com/lvgl/lvgl/blob/master /examples/arduino/LVGL_Arduino/LVGL_Arduino.ino
Не сильно изменил файл скетча.
Я использую последнюю версию 8.2.0 LVGL
/*====================
НАСТРОЙКИ ЦВЕТА
*=====================*/
/*Глубина цвета: 1 (1 байт на пиксель), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
#define LV_COLOR_DEPTH 16
/* Поменять местами 2 байта цвета RGB565. Полезно, если дисплей имеет 8-битный интерфейс (например, SPI)*/
#define LV_COLOR_16_SWAP 1
/* Включить объекты для рисования на прозрачном фоне.
*Обязательно, если используются свойства стиля opa и transform_*.
*Можно также использовать, если пользовательский интерфейс находится над другим уровнем, например экранным меню или видеоплеером.*/
#define LV_COLOR_SCREEN_TRANSP 1
/* Регулируем округление функций смешения цветов. Графические процессоры могут вычислять смешение цветов (смешивание) по-разному.
* 0: округление в меньшую сторону, 64: округление в большую сторону от x.75, 128: округление в большую сторону от половины, 192: округление в большую сторону от x.25, 254: округление в большую сторону */
#define LV_COLOR_MIX_ROUND_OFS 0
/*Пиксели изображений с этим цветом не будут отрисовываться, если они содержат хроматический ключ)*/
#define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00) /*чисто зеленый*/
LV_COLOR_SCREEN_TRANSP 1
изначально был равен 0, его изменение ничего не изменило.
Я слежу за часто задаваемыми вопросами, в которых упоминается
1.6.7 Почему я вижу на экране бессмысленные цвета? Возможно, цветовой формат LVGL несовместим с цветовым форматом вашего дисплея. Проверьте LV_COLOR_DEPTH в lv_conf.h. Если вы используете 16-битные цвета с SPI (или другим байт-ориентированным интерфейсом), вероятно, вам нужно установить LV_COLOR_16_SWAP 1 в lv_conf.h. Он меняет местами верхние и нижние байты пикселей.
как вы можете видеть выше в конфигурации, значения соответствуют рекомендуемым.
Мы будем очень признательны за любую помощь.
@Anil Maharjan, 👍1
1 ответ
Лучший ответ:
Оказывается, мне пришлось отключить LV_COLOR_16_SWAP
Я пробовал с разной глубиной цвета и всем остальным, я все еще не вижу правильно нарисованных градиентов, но теперь цвета кажутся правильными.
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
- Контакты RX и TX на esp32
- ESP32: отключить детектор отключения питания
Я сталкиваюсь с той же проблемой, используя тот же ESP32-S3, но используя структуру ESP-IDF; не Ардуино. Мое решение было точно таким же, как ваше; закомментируйте
LV_COLOR_16_SWAP
в сгенерированномui.c
. Кстати, проект, над которым я работаю, находится здесь: https://github.com/smeisner/smart-thermostat. Я надеюсь, что это скоро исправят!, @Steve MeisnerКстати, я нашел это на форуме SquareLine Studio: http://forum.squareline.io/t/when-exporting-let-us-choose-if-we-want-lv-color-16-swap-or-not /1750?u=мейснер, @Steve Meisner
Спасибо @SteveMeisner за то, что поделился ссылкой., @Anil Maharjan