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. Он меняет местами верхние и нижние байты пикселей.

как вы можете видеть выше в конфигурации, значения соответствуют рекомендуемым.

Мы будем очень признательны за любую помощь.

, 👍1


1 ответ


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

0

Оказывается, мне пришлось отключить LV_COLOR_16_SWAP Я пробовал с разной глубиной цвета и всем остальным, я все еще не вижу правильно нарисованных градиентов, но теперь цвета кажутся правильными.

,

Я сталкиваюсь с той же проблемой, используя тот же 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