248 lines
4.8 KiB
C
248 lines
4.8 KiB
C
|
|
||
|
// This is the command sequence that initialises the ILI9341 driver
|
||
|
//
|
||
|
// This setup information uses simple 8 bit SPI writecommand() and writedata() functions
|
||
|
//
|
||
|
// See ST7735_Setup.h file for an alternative format
|
||
|
|
||
|
#if defined (ILI9341_DRIVER) || defined (ILI9342_DRIVER)
|
||
|
{
|
||
|
writecommand(0xEF);
|
||
|
writedata(0x03);
|
||
|
writedata(0x80);
|
||
|
writedata(0x02);
|
||
|
|
||
|
writecommand(0xCF);
|
||
|
writedata(0x00);
|
||
|
writedata(0XC1);
|
||
|
writedata(0X30);
|
||
|
|
||
|
writecommand(0xED);
|
||
|
writedata(0x64);
|
||
|
writedata(0x03);
|
||
|
writedata(0X12);
|
||
|
writedata(0X81);
|
||
|
|
||
|
writecommand(0xE8);
|
||
|
writedata(0x85);
|
||
|
writedata(0x00);
|
||
|
writedata(0x78);
|
||
|
|
||
|
writecommand(0xCB);
|
||
|
writedata(0x39);
|
||
|
writedata(0x2C);
|
||
|
writedata(0x00);
|
||
|
writedata(0x34);
|
||
|
writedata(0x02);
|
||
|
|
||
|
writecommand(0xF7);
|
||
|
writedata(0x20);
|
||
|
|
||
|
writecommand(0xEA);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
|
||
|
writecommand(ILI9341_PWCTR1); //Power control
|
||
|
writedata(0x23); //VRH[5:0]
|
||
|
|
||
|
writecommand(ILI9341_PWCTR2); //Power control
|
||
|
writedata(0x10); //SAP[2:0];BT[3:0]
|
||
|
|
||
|
writecommand(ILI9341_VMCTR1); //VCM control
|
||
|
writedata(0x3e);
|
||
|
writedata(0x28);
|
||
|
|
||
|
writecommand(ILI9341_VMCTR2); //VCM control2
|
||
|
writedata(0x86); //--
|
||
|
|
||
|
writecommand(ILI9341_MADCTL); // Memory Access Control
|
||
|
#ifdef M5STACK
|
||
|
writedata(TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_COLOR_ORDER); // Rotation 0 (portrait mode)
|
||
|
#else
|
||
|
writedata(TFT_MAD_MX | TFT_MAD_COLOR_ORDER); // Rotation 0 (portrait mode)
|
||
|
#endif
|
||
|
|
||
|
writecommand(ILI9341_PIXFMT);
|
||
|
writedata(0x55);
|
||
|
|
||
|
writecommand(ILI9341_FRMCTR1);
|
||
|
writedata(0x00);
|
||
|
writedata(0x13); // 0x18 79Hz, 0x1B default 70Hz, 0x13 100Hz
|
||
|
|
||
|
writecommand(ILI9341_DFUNCTR); // Display Function Control
|
||
|
writedata(0x08);
|
||
|
writedata(0x82);
|
||
|
writedata(0x27);
|
||
|
|
||
|
writecommand(0xF2); // 3Gamma Function Disable
|
||
|
writedata(0x00);
|
||
|
|
||
|
writecommand(ILI9341_GAMMASET); //Gamma curve selected
|
||
|
writedata(0x01);
|
||
|
|
||
|
writecommand(ILI9341_GMCTRP1); //Set Gamma
|
||
|
writedata(0x0F);
|
||
|
writedata(0x31);
|
||
|
writedata(0x2B);
|
||
|
writedata(0x0C);
|
||
|
writedata(0x0E);
|
||
|
writedata(0x08);
|
||
|
writedata(0x4E);
|
||
|
writedata(0xF1);
|
||
|
writedata(0x37);
|
||
|
writedata(0x07);
|
||
|
writedata(0x10);
|
||
|
writedata(0x03);
|
||
|
writedata(0x0E);
|
||
|
writedata(0x09);
|
||
|
writedata(0x00);
|
||
|
|
||
|
writecommand(ILI9341_GMCTRN1); //Set Gamma
|
||
|
writedata(0x00);
|
||
|
writedata(0x0E);
|
||
|
writedata(0x14);
|
||
|
writedata(0x03);
|
||
|
writedata(0x11);
|
||
|
writedata(0x07);
|
||
|
writedata(0x31);
|
||
|
writedata(0xC1);
|
||
|
writedata(0x48);
|
||
|
writedata(0x08);
|
||
|
writedata(0x0F);
|
||
|
writedata(0x0C);
|
||
|
writedata(0x31);
|
||
|
writedata(0x36);
|
||
|
writedata(0x0F);
|
||
|
|
||
|
writecommand(ILI9341_SLPOUT); //Exit Sleep
|
||
|
|
||
|
end_tft_write();
|
||
|
delay(120);
|
||
|
begin_tft_write();
|
||
|
|
||
|
writecommand(ILI9341_DISPON); //Display on
|
||
|
|
||
|
}
|
||
|
|
||
|
#elif defined (ILI9341_2_DRIVER) // Alternative init sequence, see https://github.com/Bodmer/TFT_eSPI/issues/1172
|
||
|
|
||
|
{
|
||
|
writecommand(0xCF);
|
||
|
writedata(0x00);
|
||
|
writedata(0XC1);
|
||
|
writedata(0X30);
|
||
|
|
||
|
writecommand(0xED);
|
||
|
writedata(0x64);
|
||
|
writedata(0x03);
|
||
|
writedata(0X12);
|
||
|
writedata(0X81);
|
||
|
|
||
|
writecommand(0xE8);
|
||
|
writedata(0x85);
|
||
|
writedata(0x00);
|
||
|
writedata(0x78);
|
||
|
|
||
|
writecommand(0xCB);
|
||
|
writedata(0x39);
|
||
|
writedata(0x2C);
|
||
|
writedata(0x00);
|
||
|
writedata(0x34);
|
||
|
writedata(0x02);
|
||
|
|
||
|
writecommand(0xF7);
|
||
|
writedata(0x20);
|
||
|
|
||
|
writecommand(0xEA);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
|
||
|
writecommand(ILI9341_PWCTR1); //Power control
|
||
|
writedata(0x10); //VRH[5:0]
|
||
|
|
||
|
writecommand(ILI9341_PWCTR2); //Power control
|
||
|
writedata(0x00); //SAP[2:0];BT[3:0]
|
||
|
|
||
|
writecommand(ILI9341_VMCTR1); //VCM control
|
||
|
writedata(0x30);
|
||
|
writedata(0x30);
|
||
|
|
||
|
writecommand(ILI9341_VMCTR2); //VCM control2
|
||
|
writedata(0xB7); //--
|
||
|
|
||
|
writecommand(ILI9341_PIXFMT);
|
||
|
writedata(0x55);
|
||
|
|
||
|
writecommand(0x36); // Memory Access Control
|
||
|
writedata(0x08); // Rotation 0 (portrait mode)
|
||
|
|
||
|
writecommand(ILI9341_FRMCTR1);
|
||
|
writedata(0x00);
|
||
|
writedata(0x1A);
|
||
|
|
||
|
writecommand(ILI9341_DFUNCTR); // Display Function Control
|
||
|
writedata(0x08);
|
||
|
writedata(0x82);
|
||
|
writedata(0x27);
|
||
|
|
||
|
writecommand(0xF2); // 3Gamma Function Disable
|
||
|
writedata(0x00);
|
||
|
|
||
|
writecommand(0x26); //Gamma curve selected
|
||
|
writedata(0x01);
|
||
|
|
||
|
writecommand(0xE0); //Set Gamma
|
||
|
writedata(0x0F);
|
||
|
writedata(0x2A);
|
||
|
writedata(0x28);
|
||
|
writedata(0x08);
|
||
|
writedata(0x0E);
|
||
|
writedata(0x08);
|
||
|
writedata(0x54);
|
||
|
writedata(0xA9);
|
||
|
writedata(0x43);
|
||
|
writedata(0x0A);
|
||
|
writedata(0x0F);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
|
||
|
writecommand(0XE1); //Set Gamma
|
||
|
writedata(0x00);
|
||
|
writedata(0x15);
|
||
|
writedata(0x17);
|
||
|
writedata(0x07);
|
||
|
writedata(0x11);
|
||
|
writedata(0x06);
|
||
|
writedata(0x2B);
|
||
|
writedata(0x56);
|
||
|
writedata(0x3C);
|
||
|
writedata(0x05);
|
||
|
writedata(0x10);
|
||
|
writedata(0x0F);
|
||
|
writedata(0x3F);
|
||
|
writedata(0x3F);
|
||
|
writedata(0x0F);
|
||
|
|
||
|
writecommand(0x2B);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
writedata(0x01);
|
||
|
writedata(0x3f);
|
||
|
|
||
|
writecommand(0x2A);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
writedata(0x00);
|
||
|
writedata(0xef);
|
||
|
|
||
|
writecommand(ILI9341_SLPOUT); //Exit Sleep
|
||
|
|
||
|
end_tft_write();
|
||
|
delay(120);
|
||
|
begin_tft_write();
|
||
|
|
||
|
writecommand(ILI9341_DISPON); //Display on
|
||
|
}
|
||
|
#endif
|