68 lines
1.5 KiB
C
68 lines
1.5 KiB
C
/*
|
|
* 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();
|
|
}
|