Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

stm32 + ili9341 выдает не правильные цвета

Ср окт 12, 2016 10:41:18

Добрый день товарищи :beer: , столкнулся с такой проблемой:
дисплей на контроллере ili9341 правильно показывает только синий и черный цвета, а все остальные оттенки синего :cry: уже 2 дня борюсь сил нет, может кто посмотрит проект и поможет, буду премного благодарен.
З.Ы. среда кеил
Вложения
SRC+INC.rar
(14.83 KiB) Скачиваний: 205

Re: stm32 + ili9341 выдает не правильные цвета

Ср ноя 02, 2016 15:41:55

Что-то у вас инициализация ili9341 подозрительная, двойная какая-то, исправьте на нормальную.

Re: stm32 + ili9341 выдает не правильные цвета

Чт ноя 23, 2017 08:26:36

Добрый день.
У Вас решилась эта задача ?
У меня аналогичная ситуация. Буду благодарен за ответ любого рода. Мой mail: apn@sinn.ru
Спасибо.

Re: stm32 + ili9341 выдает не правильные цвета

Пт ноя 24, 2017 14:09:49

Ну судя по тому, что после совета исправить инициализацию вопросов больше не было, может тоже в этом дело?
Попробуйте так, у меня работает:
Спойлер#define ILI9341_RESET 0x01
#define ILI9341_SLEEP_OUT 0x11
#define ILI9341_GAMMA 0x26
#define ILI9341_DISPLAY_OFF 0x28
#define ILI9341_DISPLAY_ON 0x29
#define ILI9341_COLUMN_ADDR 0x2A
#define ILI9341_PAGE_ADDR 0x2B
#define ILI9341_GRAM 0x2C
#define ILI9341_MAC 0x36
#define ILI9341_PIXEL_FORMAT 0x3A
#define ILI9341_WDB 0x51
#define ILI9341_WCD 0x53
#define ILI9341_RGB_INTERFACE 0xB0
#define ILI9341_FRC 0xB1
#define ILI9341_BPC 0xB5
#define ILI9341_DFC 0xB6
#define ILI9341_POWER1 0xC0
#define ILI9341_POWER2 0xC1
#define ILI9341_VCOM1 0xC5
#define ILI9341_VCOM2 0xC7
#define ILI9341_POWERA 0xCB
#define ILI9341_POWERB 0xCF
#define ILI9341_PGAMMA 0xE0
#define ILI9341_NGAMMA 0xE1
#define ILI9341_DTCA 0xE8
#define ILI9341_DTCB 0xEA
#define ILI9341_POWER_SEQ 0xED
#define ILI9341_3GAMMA_EN 0xF2
#define ILI9341_INTERFACE 0xF6
#define ILI9341_PRC 0xF7



LCD_CS_set(0);

LCD_RST_set(1);
LCD_SendCommand(ILI9341_RESET);
Delay(100);


LCD_SendCommand(ILI9341_RESET);
Delay(100);

/// commands here
LCD_SendCommand(ILI9341_POWERA);
LCD_SendData(0x39);
LCD_SendData(0x2C);
LCD_SendData(0x00);
LCD_SendData(0x34);
LCD_SendData(0x02);
LCD_SendCommand(ILI9341_POWERB);
LCD_SendData(0x00);
LCD_SendData(0xC1);
LCD_SendData(0x30);
LCD_SendCommand(ILI9341_DTCA);
LCD_SendData(0x85);
LCD_SendData(0x00);
LCD_SendData(0x78);
LCD_SendCommand(ILI9341_DTCB);
LCD_SendData(0x00);
LCD_SendData(0x00);
LCD_SendCommand(ILI9341_POWER_SEQ);
LCD_SendData(0x64);
LCD_SendData(0x03);
LCD_SendData(0x12);
LCD_SendData(0x81);
LCD_SendCommand(ILI9341_PRC);
LCD_SendData(0x20);
LCD_SendCommand(ILI9341_POWER1);
LCD_SendData(0x23);
LCD_SendCommand(ILI9341_POWER2);
LCD_SendData(0x10);
LCD_SendCommand(ILI9341_VCOM1);
LCD_SendData(0x3E);
LCD_SendData(0x28);
LCD_SendCommand(ILI9341_VCOM2);
LCD_SendData(0x86);
LCD_SendCommand(ILI9341_MAC);
LCD_SendData(0x48);
LCD_SendCommand(ILI9341_PIXEL_FORMAT);
LCD_SendData(0x55);
LCD_SendCommand(ILI9341_FRC);
LCD_SendData(0x00);
LCD_SendData(0x18);
LCD_SendCommand(ILI9341_DFC);
LCD_SendData(0x08);
LCD_SendData(0x82);
LCD_SendData(0x27);
LCD_SendCommand(ILI9341_3GAMMA_EN);
LCD_SendData(0x00);
LCD_SendCommand(ILI9341_COLUMN_ADDR);
LCD_SendData(0x00);
LCD_SendData(0x00);
LCD_SendData(0x00);
LCD_SendData(0xEF);
LCD_SendCommand(ILI9341_PAGE_ADDR);
LCD_SendData(0x00);
LCD_SendData(0x00);
LCD_SendData(0x01);
LCD_SendData(0x3F);
LCD_SendCommand(ILI9341_GAMMA);
LCD_SendData(0x01);
LCD_SendCommand(ILI9341_PGAMMA);
LCD_SendData(0x0F);
LCD_SendData(0x31);
LCD_SendData(0x2B);
LCD_SendData(0x0C);
LCD_SendData(0x0E);
LCD_SendData(0x08);
LCD_SendData(0x4E);
LCD_SendData(0xF1);
LCD_SendData(0x37);
LCD_SendData(0x07);
LCD_SendData(0x10);
LCD_SendData(0x03);
LCD_SendData(0x0E);
LCD_SendData(0x09);
LCD_SendData(0x00);
LCD_SendCommand(ILI9341_NGAMMA);
LCD_SendData(0x00);
LCD_SendData(0x0E);
LCD_SendData(0x14);
LCD_SendData(0x03);
LCD_SendData(0x11);
LCD_SendData(0x07);
LCD_SendData(0x31);
LCD_SendData(0xC1);
LCD_SendData(0x48);
LCD_SendData(0x08);
LCD_SendData(0x0F);
LCD_SendData(0x0C);
LCD_SendData(0x31);
LCD_SendData(0x36);
LCD_SendData(0x0F);
LCD_SendCommand(ILI9341_SLEEP_OUT);
Delay(100);
LCD_SendCommand(ILI9341_DISPLAY_ON);
LCD_SendCommand(ILI9341_GRAM);

Re: stm32 + ili9341 выдает не правильные цвета

Пн ноя 27, 2017 08:46:43

Спасибо, я уже разобрался. Проблема была в том, что я использовал 8bit протокол. а TFT был выставлен для 16bit (это IM).
Ответить