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 |