void LCD_RESET(void) { LCD_RST_CLR; Delay_Ms(100); LCD_RST_SET; Delay_Ms(50); } void LCD_Init(void) { LCD_RESET(); //LCD reset //*************ST7789V Init**********// Delay_Ms(120); /* Porch Setting */ LCD_WR_REG( 0xB2); LCD_WR_DATA( 0x0C); LCD_WR_DATA( 0x0C); LCD_WR_DATA( 0x00); LCD_WR_DATA( 0x33); LCD_WR_DATA( 0x33); /*Tearing effect line on*/ LCD_WR_REG( 0x35); LCD_WR_DATA( 0x00); /* Memory Data Access Control */ LCD_WR_REG( 0x36); LCD_WR_DATA( 0x00); /* RGB 5-6-5-bit */ LCD_WR_REG( 0x3A); LCD_WR_DATA( 0x05); /* Gate Control */ LCD_WR_REG( 0xB7); LCD_WR_DATA( 0x75); /* VCOM Setting */ LCD_WR_REG( 0xBB); LCD_WR_DATA( 0x23); /* LCM Control */ LCD_WR_REG( 0xC0); LCD_WR_DATA( 0x2C); /* VDV and VRH Command Enable */ LCD_WR_REG( 0xC2); LCD_WR_DATA( 0x01); /* VRH Set */ LCD_WR_REG( 0xC3); LCD_WR_DATA( 0x13); /* VDV Set */ LCD_WR_REG( 0xC4); LCD_WR_DATA( 0x20); /* Frame Rate Control in Normal Mode */ LCD_WR_REG( 0xC6); LCD_WR_DATA( 0x0F); /* Power Control 1 */ LCD_WR_REG( 0xD0); LCD_WR_DATA( 0xA4); LCD_WR_DATA( 0xA1); LCD_WR_REG( 0xD6); LCD_WR_DATA( 0xA1); /* Positive Voltage Gamma Control */ LCD_WR_REG( 0xE0); LCD_WR_DATA( 0xF0); LCD_WR_DATA( 0x0A); LCD_WR_DATA( 0x14); LCD_WR_DATA( 0x12); LCD_WR_DATA( 0x12); LCD_WR_DATA( 0x0C); LCD_WR_DATA( 0x39); LCD_WR_DATA( 0x44); LCD_WR_DATA( 0x49); LCD_WR_DATA( 0x05); LCD_WR_DATA( 0x10); LCD_WR_DATA( 0x0F); LCD_WR_DATA( 0x16); LCD_WR_DATA( 0x19); /* Negative Voltage Gamma Control */ LCD_WR_REG( 0xE1); LCD_WR_DATA( 0xF0); LCD_WR_DATA( 0x07); LCD_WR_DATA( 0x0F); LCD_WR_DATA( 0x0A); LCD_WR_DATA( 0x0B); LCD_WR_DATA( 0x17); LCD_WR_DATA( 0x39); LCD_WR_DATA( 0x44); LCD_WR_DATA( 0x4A); LCD_WR_DATA( 0x3F); LCD_WR_DATA( 0x1D); LCD_WR_DATA( 0x1B); LCD_WR_DATA( 0x1F); LCD_WR_DATA( 0x23); /*Sleep out*/ LCD_WR_REG( 0x11); Delay_Ms(120); /*Display on*/ LCD_WR_REG( 0x29); /*Memory write*/ LCD_WR_REG( 0x2C); }