129 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
| 
 | |
| // This is the command sequence that initialises the ST7789 driver
 | |
| //
 | |
| // This setup information uses simple 8 bit SPI writecommand() and writedata() functions
 | |
| //
 | |
| // See ST7735_Setup.h file for an alternative format
 | |
| 
 | |
| {
 | |
|   writecommand(ST7789_SLPOUT);   // Sleep out
 | |
|   delay(120);
 | |
| 
 | |
|   writecommand(ST7789_NORON);    // Normal display mode on
 | |
| 
 | |
|   //------------------------------display and color format setting--------------------------------//
 | |
|   writecommand(ST7789_MADCTL);
 | |
|   //writedata(0x00);
 | |
|   writedata(TFT_MAD_COLOR_ORDER);
 | |
| 
 | |
|   // JLX240 display datasheet
 | |
|   writecommand(0xB6);
 | |
|   writedata(0x0A);
 | |
|   writedata(0x82);
 | |
| 
 | |
|   writecommand(ST7789_RAMCTRL);
 | |
|   writedata(0x00);
 | |
|   writedata(0xE0); // 5 to 6 bit conversion: r0 = r5, b0 = b5
 | |
| 
 | |
|   writecommand(ST7789_COLMOD);
 | |
|   writedata(0x55);
 | |
|   delay(10);
 | |
| 
 | |
|   //--------------------------------ST7789V Frame rate setting----------------------------------//
 | |
|   writecommand(ST7789_PORCTRL);
 | |
|   writedata(0x0c);
 | |
|   writedata(0x0c);
 | |
|   writedata(0x00);
 | |
|   writedata(0x33);
 | |
|   writedata(0x33);
 | |
| 
 | |
|   writecommand(ST7789_GCTRL);      // Voltages: VGH / VGL
 | |
|   writedata(0x35);
 | |
| 
 | |
|   //---------------------------------ST7789V Power setting--------------------------------------//
 | |
|   writecommand(ST7789_VCOMS);
 | |
|   writedata(0x28);		// JLX240 display datasheet
 | |
| 
 | |
|   writecommand(ST7789_LCMCTRL);
 | |
|   writedata(0x0C);
 | |
| 
 | |
|   writecommand(ST7789_VDVVRHEN);
 | |
|   writedata(0x01);
 | |
|   writedata(0xFF);
 | |
| 
 | |
|   writecommand(ST7789_VRHS);       // voltage VRHS
 | |
|   writedata(0x10);
 | |
| 
 | |
|   writecommand(ST7789_VDVSET);
 | |
|   writedata(0x20);
 | |
| 
 | |
|   writecommand(ST7789_FRCTR2);
 | |
|   writedata(0x0f);
 | |
| 
 | |
|   writecommand(ST7789_PWCTRL1);
 | |
|   writedata(0xa4);
 | |
|   writedata(0xa1);
 | |
| 
 | |
|   //--------------------------------ST7789V gamma setting---------------------------------------//
 | |
|   writecommand(ST7789_PVGAMCTRL);
 | |
|   writedata(0xd0);
 | |
|   writedata(0x00);
 | |
|   writedata(0x02);
 | |
|   writedata(0x07);
 | |
|   writedata(0x0a);
 | |
|   writedata(0x28);
 | |
|   writedata(0x32);
 | |
|   writedata(0x44);
 | |
|   writedata(0x42);
 | |
|   writedata(0x06);
 | |
|   writedata(0x0e);
 | |
|   writedata(0x12);
 | |
|   writedata(0x14);
 | |
|   writedata(0x17);
 | |
| 
 | |
|   writecommand(ST7789_NVGAMCTRL);
 | |
|   writedata(0xd0);
 | |
|   writedata(0x00);
 | |
|   writedata(0x02);
 | |
|   writedata(0x07);
 | |
|   writedata(0x0a);
 | |
|   writedata(0x28);
 | |
|   writedata(0x31);
 | |
|   writedata(0x54);
 | |
|   writedata(0x47);
 | |
|   writedata(0x0e);
 | |
|   writedata(0x1c);
 | |
|   writedata(0x17);
 | |
|   writedata(0x1b);
 | |
|   writedata(0x1e);
 | |
| 
 | |
|   writecommand(ST7789_INVON);
 | |
| 
 | |
|   writecommand(ST7789_CASET);    // Column address set
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
|   writedata(0xE5);    // 239
 | |
| 
 | |
|   writecommand(ST7789_RASET);    // Row address set
 | |
|   writedata(0x00);
 | |
|   writedata(0x00);
 | |
|   writedata(0x01);
 | |
|   writedata(0x3F);    // 319
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|   end_tft_write();
 | |
|   delay(120);
 | |
|   begin_tft_write();
 | |
| 
 | |
|   writecommand(ST7789_DISPON);    //Display on
 | |
|   delay(120);
 | |
| 
 | |
| #ifdef TFT_BL
 | |
|   // Turn on the back-light LED
 | |
|   digitalWrite(TFT_BL, HIGH);
 | |
|   pinMode(TFT_BL, OUTPUT);
 | |
| #endif
 | |
| }
 |