/* * ILI9341.c * * Created on: Aug 5, 2023 * Author: leo */ #include "ILI9341.h" #include "lcdio.h" void ILI9341_Init(void) { // TOUCH_LCD_IO_Init(); /* Sleep In Command */ LCD_IO_WriteReg(ILI9341_SLEEP_IN); /* SW Reset Command */ LCD_IO_WriteReg(ILI9341_SWRESET); /* Wait for 200ms */ LCD_Delay(200); /* Normal display for Driver Down side */ LCD_IO_WriteReg(ILI9341_NORMAL_DISPLAY); LCD_IO_WriteData(0xE8); // MY and ML flipped + bit 3 RGB and BGR changed. /* Color mode 16bits/pixel */ LCD_IO_WriteReg(ILI9341_COLOR_MODE); LCD_IO_WriteData(0x55); /* Set Column address CASET */ LCD_IO_WriteReg(ILI9341_CASET); LCD_IO_WriteData(0x00); LCD_IO_WriteData(0x00); LCD_IO_WriteData(0x01); LCD_IO_WriteData(0x3F); /* Set Row address RASET */ LCD_IO_WriteReg(ILI9341_RASET); LCD_IO_WriteData(0x00); LCD_IO_WriteData(0x00); LCD_IO_WriteData(0x00); LCD_IO_WriteData(0xEF); /* VCOM setting */ LCD_IO_WriteReg(ILI9341_VCOM_CTRL1); LCD_IO_WriteData(0x3E); LCD_IO_WriteData(0x28); LCD_IO_WriteReg(ILI9341_VCOM_CTRL2); LCD_IO_WriteData(0x86); /* Frame Rate Control in normal mode */ LCD_IO_WriteReg(ILI9341_FR_CTRL); LCD_IO_WriteData(0x00); LCD_IO_WriteData(0x18); /* Power Control */ LCD_IO_WriteReg(ILI9341_POWER_CTRL1); LCD_IO_WriteData(0x23); LCD_IO_WriteReg(ILI9341_POWER_CTRL2); LCD_IO_WriteData(0x10); /* Sleep Out Command */ LCD_IO_WriteReg(ILI9341_SLEEP_OUT); /* Wait for 120ms */ LCD_Delay(120); /* Display ON command */ ILI9341_DisplayOn(); }