NOTE:VCI=3.3V,使用RGB接口必需要用SPI对LCD进行初始化. //**************************************************************** void write_command (unsigned char y) // (uchar y,uchar x) { unsigned char i; csb=0; sclb=0; sdi=0; sclb=1; for(i=0;i<8;i++) { sclb=0; if (y&0x80) { sdi=1; } else { sdi=0; } sclb=1; y=y<<1; } csb=1; } //*************************************************************** void write_data(unsigned char w) // (uchar w, uchar v) { unsigned char i; csb=0; sclb=0; sdi=1; sclb=1; for(i=0;i<8;i++) { sclb=0; if (w&0x80) { sdi=1; } else { sdi=0; } sclb=1; w=w<<1; } csb=1; } /*************************************************/ void initi(void) { res=1; delay(1); res=0; delay(10); res=1; delay(120); //--------------------------------ST7789S Frame rate setting----------------------------------// write_command(0x11); delay(120); //Delay 120ms write_command(0x36); //Memory data access contro write_data(0x00); write_command(0xB2); // Porch Setting write_data(0x0C); write_data(0x0C); write_data(0x00); write_data(0x33); write_data(0x33); write_command(0xB7); //Gate Control write_data(0x70); //VGH,VGL write_command(0xBB);//VCOM write_data(0x3A); write_command(0xC0); write_data(0x2C); write_command(0xC2); write_data(0x01); write_command(0xC3); //VAP write_data(0x14);//14 write_command(0xC4); write_data(0x20); write_command(0xC6); write_data(0x0F); //60HZ 0A write_command(0xD0); write_data(0xA4); write_data(0xA1); // AVDD VCL write_command(0xE0); write_data(0xD0); write_data(0x07); write_data(0x0D); write_data(0x09); write_data(0x08); write_data(0x25); write_data(0x28); write_data(0x53); write_data(0x39); write_data(0x12); write_data(0x0B); write_data(0x0A); write_data(0x17); write_data(0x34); write_command(0xE1); write_data(0xD0); write_data(0x07); write_data(0x0D); write_data(0x09); write_data(0x09); write_data(0x25); write_data(0x29); write_data(0x35); write_data(0x39); write_data(0x13); write_data(0x0A); write_data(0x0A); write_data(0x16); write_command(0x21); //反显 //*********SET RGB Interfae*************** write_command(0xB0); write_data(0x11); //set RGB interface and DE mode. write_data(0x00); write_data(0x00); write_command(0xB1); write_data(0x40); // set DE mode ; SET Hs,Vs,DE,DOTCLK signal polarity 42 write_data(0x00); write_data(0x00); write_command(0x3a); write_data(0x50); //18 RGB ,55-16BIT RGB //************************ write_command(0x2A); // write_data(0x00); write_data(0x00); write_data(0x00); write_data(0xEF); write_command(0x2B); // write_data(0x00); write_data(0x00); write_data(0x01); write_data(0x3F); write_command(0x29); //display on write_command(0x2c); } //********************************************************************* void EnterSleep (void) { write_command(0x28); delay(20); write_command(0x10); RGB_OFF(); delay(50); } //********************************************************* void ExitSleep (void) { RGB_ON(); delay(20); write_command(0x11); delay(120); write_command(0x29); }