pse-firmware/Core/Src/ILI9341.c
2023-08-05 15:56:45 +02:00

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();
}