Перейти к содержимому
Display Engineer
Устранение неисправностей

ILI9341 или ST7789: как узнать, какой контроллер у вашего дисплея

Платы, продающиеся под одним названием, поставляются с контроллером ILI9341 или ST7789. Как определить свой по симптомам или чтением регистра ID и какие настройки исправляют белый экран и неправильные цвета.

DEDisplay Engineer Applications Team · Инженеры по применению дисплеевПроверено инженером 11 окт. 2026 г.

Почему у одной и той же платы бывает разный контроллер

Недорогие дисплейные платы собирают из панелей, закупленных на открытом рынке. Когда партия меняет поставщика, может смениться и контроллер, а название платы, печатная плата и распиновка остаются прежними. ESP32-2432S028R (Cheap Yellow Display) и ESP32-2432S024 существуют в версиях с ILI9341 и ST7789.

Определение по симптомам

Что вы видите с настройкой ILI9341

Вероятная причина

Решение

Белый или пустой экран, подсветка горит

Контроллер — ST7789

Переключиться на драйвер ST7789

Изображение есть, цвета в негативе

Панели ST7789 нужна инверсия

Переключить инверсию (TFT_INVERSION_ON)

Красный и синий перепутаны

Порядок цветов

Задать порядок BGR (TFT_RGB_ORDER TFT_BGR)

Изображение зеркальное или смещённое

Настройка поворота / доступа к памяти

Изменить поворот (MADCTL)

Всё тёмное

Неверный или повторно используемый вывод подсветки

Проверить GPIO подсветки

Меняйте по одной настройке за раз и держите рабочий пример для сравнения.

Определение чтением ID

Если плата подключает линию MISO панели, можно прочитать ID контроллера, а не гадать. ILI9341 отвечает 0x9341 на команду Read ID4 (0xD3). В TFT_eSPI tft.readcommand8(0xD3, n) читает байт n регистра. Если вы не получаете 0x93 и 0x41, попробуйте драйвер ST7789. Платы без MISO прочитать нельзя, поэтому пользуйтесь таблицей симптомов.

Различающиеся настройки

Параметр

ILI9341

ST7789

Драйвер TFT_eSPI

ILI9341_DRIVER / ILI9341_2_DRIVER

ST7789_DRIVER

LovyanGFX

Panel_ILI9341

Panel_ST7789

ESP-IDF

espressif/esp_lcd_ili9341

esp_lcd_new_panel_st7789() (встроенный)

Инверсия

обычно выключена

часто включена

Шаблоны для обоих — на страницах ILI9341 и ST7789V.

Как избежать этого в продукте

Для продукта выбирайте модуль, в даташите которого указан контроллер, а поставщик фиксирует его для каждой производственной партии, чтобы прошивка не ломалась от партии к партии. Наш SPI-модуль 2,8 дюйма 240×320 использует заданный ST7789V; образцы от 1 шт.

Частые вопросы

Будет ли код для ILI9341 работать на ST7789?

Не надёжно. Оба — контроллеры 240×320, но последовательность инициализации различается, поэтому смените драйвер, а не латайте код ILI9341.

Почему на дисплее ST7789 инвертированы цвета?

Многим панелям ST7789 нужна инверсия дисплея (INVON). Включите TFT_INVERSION_ON или вызовите tft.invertDisplay(true).

Как прочитать ID контроллера?

При подключённом MISO прочитайте регистр 0xD3 (Read ID4): ILI9341 возвращает 0x93 0x41. Без MISO определяйте по симптомам.

Модули, упомянутые в руководстве

Не знаете, какой дисплей подойдёт вашему проекту?

Пришлите размер, интерфейс и хост-процессор. Инженер по дисплеям в течение 12 часов ответит с 2–3 вариантами, даташитами и кодом инициализации. Образцы от 1 шт.