📄 ili932x.c
字号:
LCD_WR_CmdPar(0x00E7,0x0012);
LCD_WR_CmdPar(0x00Ef,0x1231); // Set the internal timing;
//LCD_WR_CmdPar(0x0000,0x0001); // Start internal OSC.
Delayms(20); // Delay 20ms
LCD_WR_CmdPar(0x0001,0x0100); // set SS and SM bit
LCD_WR_CmdPar(0x0002,0x0700); // set line inversion
LCD_WR_CmdPar(0x0003,0x1030); // TRI=1;DFM=0; set GRAM write direction and BGR=1
LCD_WR_CmdPar(0x0004,0x0000); // Resize register
LCD_WR_CmdPar(0x0008,0x0202); // set the back porch and front porch
LCD_WR_CmdPar(0x0009,0x0000); // set non-display area refresh cycle ISC[3:0]
LCD_WR_CmdPar(0x000A,0x0008); // FMARK function
//***************************Power on sequence******************************//
LCD_WR_CmdPar(0x0010,0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_WR_CmdPar(0x0011,0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
LCD_WR_CmdPar(0x0012,0x0000); // VREG1OUT voltage
LCD_WR_CmdPar(0x0013,0x0000); // VDV[4:0] for VCOM amplitude
Delayms(200); // Dis-charge capacitor power voltage
LCD_WR_CmdPar(0x0010,0x1190); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_WR_CmdPar(0x0011,0x0227); // DC1[2:0], DC0[2:0], VC[2:0]
Delayms(50); // Delay 50ms
//LCD_WR_CmdPar(0x0012,0x001c); // VREG1OUT voltage
LCD_WR_CmdPar(0x0012,0x015c); // VREG1OUT voltage
Delayms(50); // Delay 50ms
LCD_WR_CmdPar(0x0013,0x1200); // VDV[4:0] for VCOM amplitude
LCD_WR_CmdPar(0x0029,0x001D); // VCM[4:0] for VCOMH
LCD_WR_CmdPar(0x002B,0x0009); // Frame=60Hz;
Delayms(50); // Delay 50ms
//*************************Adjust the Gamma Curve****************************//
LCD_WR_CmdPar(0x0030,0x0100);
LCD_WR_CmdPar(0x0031,0x0408);
LCD_WR_CmdPar(0x0032,0x0000);
LCD_WR_CmdPar(0x0035,0x0103);
LCD_WR_CmdPar(0x0036,0x1604);
LCD_WR_CmdPar(0x0037,0x0305);
LCD_WR_CmdPar(0x0038,0x0004);
LCD_WR_CmdPar(0x0039,0x0807);
LCD_WR_CmdPar(0x003C,0x0401);
LCD_WR_CmdPar(0x003D,0x000A);
//*****************************Set GRAM Area*********************************//
LCD_WR_CmdPar(0x0050,0x0000); // Horizontal GRAM Start Address
LCD_WR_CmdPar(0x0051,0x00EF); // Horizontal GRAM End Address
LCD_WR_CmdPar(0x0052,0x0000); // Vertical GRAM Start Address
LCD_WR_CmdPar(0x0053,0x013F); // Vertical GRAM Start Address
LCD_WR_CmdPar(0x0060,0xa700); // Gate Scan Line
LCD_WR_CmdPar(0x0061,0x0001); // NDL,VLE, REV
LCD_WR_CmdPar(0x006A,0x0000); // set scrolling line
//************************Partial Display Control****************************//
LCD_WR_CmdPar(0x0080,0x0000);
LCD_WR_CmdPar(0x0081,0x0000);
LCD_WR_CmdPar(0x0082,0x0000);
LCD_WR_CmdPar(0x0083,0x0000);
LCD_WR_CmdPar(0x0084,0x0000);
LCD_WR_CmdPar(0x0085,0x0000);
//****************************Panel Control**********************************//
LCD_WR_CmdPar(0x0090,0x0010); //set frame
LCD_WR_CmdPar(0x0092,0x0000);
LCD_WR_CmdPar(0x0093,0x0003);
LCD_WR_CmdPar(0x0095,0x0110);
LCD_WR_CmdPar(0x0097,0x0000);
LCD_WR_CmdPar(0x0098,0x0000);
LCD_WR_CmdPar(0x0007,0x0133); // 262K color and display ON
Delayms(10);
}
else if (i == 0x9320)
{
LCD_WR_CmdPar(0x00, 0x0000);
LCD_WR_CmdPar(0x01, 0x0100); //Driver Output Contral.
LCD_WR_CmdPar(0x02, 0x0700); //LCD Driver Waveform Contral.
LCD_WR_CmdPar(0x03, 0x1030); //Entry Mode Set.
LCD_WR_CmdPar(0x04, 0x0000); //Scalling Contral.
LCD_WR_CmdPar(0x08, 0x0202); //Display Contral 2.(0x0207)
LCD_WR_CmdPar(0x09, 0x0000); //Display Contral 3.(0x0000)
LCD_WR_CmdPar(0x0a, 0x0000); //Frame Cycle Contal.(0x0000)
LCD_WR_CmdPar(0x0c, (1 << 0)); //Extern Display Interface Contral 1.(0x0000)
LCD_WR_CmdPar(0x0d, 0x0000); //Frame Maker Position.
LCD_WR_CmdPar(0x0f, 0x0000); //Extern Display Interface Contral 2.
for (i = 50000; i > 0; i--);
LCD_WR_CmdPar(0x07, 0x0101); //Display Contral.
for (i = 50000; i > 0; i--);
LCD_WR_CmdPar(0x10, (1 << 12) | (0 << 8) | (1 << 7) | (1 << 6) | (0 << 4)); //Power Control 1.(0x16b0)
LCD_WR_CmdPar(0x11, 0x0007); //Power Control 2.(0x0001)
LCD_WR_CmdPar(0x12, (1 << 8) | (1 << 4) | (0 << 0)); //Power Control 3.(0x0138)
LCD_WR_CmdPar(0x13, 0x0b00); //Power Control 4.
LCD_WR_CmdPar(0x29, 0x0000); //Power Control 7.
LCD_WR_CmdPar(0x2b, (1 << 14) | (1 << 4));
LCD_WR_CmdPar(0x50, 0); //Set X Start.
LCD_WR_CmdPar(0x51, 239); //Set X End.
LCD_WR_CmdPar(0x52, 0); //Set Y Start.
LCD_WR_CmdPar(0x53, 319); //Set Y End.
LCD_WR_CmdPar(0x60, 0x2700); //Driver Output Control.
LCD_WR_CmdPar(0x61, 0x0001); //Driver Output Control.
LCD_WR_CmdPar(0x6a, 0x0000); //Vertical Srcoll Control.
LCD_WR_CmdPar(0x80, 0x0000); //Display Position? Partial Display 1.
LCD_WR_CmdPar(0x81, 0x0000); //RAM Address Start? Partial Display 1.
LCD_WR_CmdPar(0x82, 0x0000); //RAM Address End-Partial Display 1.
LCD_WR_CmdPar(0x83, 0x0000); //Displsy Position? Partial Display 2.
LCD_WR_CmdPar(0x84, 0x0000); //RAM Address Start? Partial Display 2.
LCD_WR_CmdPar(0x85, 0x0000); //RAM Address End? Partial Display 2.
LCD_WR_CmdPar(0x90, (0 << 7) | (16 << 0)); //Frame Cycle Contral.(0x0013)
LCD_WR_CmdPar(0x92, 0x0000); //Panel Interface Contral 2.(0x0000)
LCD_WR_CmdPar(0x93, 0x0001); //Panel Interface Contral 3.
LCD_WR_CmdPar(0x95, 0x0110); //Frame Cycle Contral.(0x0110)
LCD_WR_CmdPar(0x97, (0 << 8)); //
LCD_WR_CmdPar(0x98, 0x0000); //Frame Cycle Contral.
LCD_WR_CmdPar(0x07, 0x0173); //(0x0173)
}
else if(i==0x7781)
{
//--------------------------------ST7781 Internal Register Initial---------------------------------------//
LCD_WR_CmdPar(0x00ff, 0x0001); //wr_cmd(0x00ff);wr_data(0x0001);
LCD_WR_CmdPar(0x00f3, 0x0008); //wr_cmd(0x00f3);wr_data(0x0008);
//LCD_CtrlRead_ST7781 (0x00f3); //Read Parameter
//---------------------------End ST7781 Internal Register Initial--------------------------------------//
//------------------------------------Display Control Setting----------------------------------------------//
LCD_WR_CmdPar(0x0001, 0x0100); //wr_cmd(0x0001);wr_data(0x0100); //Output Direct
LCD_WR_CmdPar(0x0002, 0x0700); //wr_cmd(0x0002);wr_data(0x0700); //Line Inversion
LCD_WR_CmdPar(0x0003, 0x1030); //wr_cmd(0x0003);wr_data(0x1030); //Entry Mode (65K, BGR)
LCD_WR_CmdPar(0x0008, 0x0807); //wr_cmd(0x0008);wr_data(0x0807); // Porch Setting
LCD_WR_CmdPar(0x000a, 0x0000); //wr_cmd(0x000A);wr_data(0x0000); //FMARK off
//-----------------------------------End Display Control setting-----------------------------------------//
//-------------------------------- Power Control Registers Initial --------------------------------------//
LCD_WR_CmdPar(0x0010, 0x0790); //wr_cmd(0x0010);wr_data(0x0790); //Power Control1
LCD_WR_CmdPar(0x0011, 0x0005); //wr_cmd(0x0011);wr_data(0x0005); //Power Control2
LCD_WR_CmdPar(0x0012, 0x0000); //wr_cmd(0x0012);wr_data(0x0000); //Power Control3
LCD_WR_CmdPar(0x0013, 0x0000); //wr_cmd(0x0013);wr_data(0x0000); //Power Control4
//---------------------------------End Power Control Registers Initial -------------------------------//
Delay_nms(1); //Delayms(1); //for (i = 50000; i > 0; i--); //SysTickDelay(100); //Delay 100ms
//--------------------------------- Power Supply Startup 1 Setting------------------------------------//
LCD_WR_CmdPar(0x0010, 0x1490); //wr_cmd(0x0010);wr_data(0x1490); //Power Control1
Delay_nms(1); //Delayms(1); //for (i = 50000; i > 0; i--); //SysTickDelay(50); //Delay 50ms
LCD_WR_CmdPar(0x0011, 0x0227); //wr_cmd(0x0011);wr_data(0x0227); //Power Control2
//--------------------------------- End Power Supply Startup 1 Setting------------------------------//
Delay_nms(1); //Delayms(1); //for (i = 50000; i > 0; i--); //SysTickDelay(50); //Delay 50ms
//--------------------------------- Power Supply Startup 2 Setting------------------------------------//
LCD_WR_CmdPar(0x0012, 0x0089); //wr_cmd(0x0012);wr_data(0x0089); //Power Control3
LCD_WR_CmdPar(0x0013, 0x1900); //wr_cmd(0x0013);wr_data(0x1900); //Power Control4
LCD_WR_CmdPar(0x0029, 0x0021); //wr_cmd(0x0029);wr_data(0x0021); //VCOMH setting
//--------------------------------- End Power Supply Startup 2 Setting------------------------------//
Delay_nms(1); //Delayms(1); //for (i = 50000; i > 0; i--); //SysTickDelay(50); //Delay 50ms
//-------------------------------------Gamma Cluster Setting-------------------------------------------//
LCD_WR_CmdPar(0x0030, 0x0000); //wr_cmd(0x0030);wr_data(0x0000);
LCD_WR_CmdPar(0x0031, 0x0006); //wr_cmd(0x0031);wr_data(0x0006);
LCD_WR_CmdPar(0x0032, 0x0100); //wr_cmd(0x0032);wr_data(0x0100);
LCD_WR_CmdPar(0x0035, 0x0001); //wr_cmd(0x0035);wr_data(0x0001);
LCD_WR_CmdPar(0x0036, 0x0000); //wr_cmd(0x0036);wr_data(0x0000);
LCD_WR_CmdPar(0x0037, 0x0000); //wr_cmd(0x0037);wr_data(0x0000);
LCD_WR_CmdPar(0x0038, 0x0406); //wr_cmd(0x0038);wr_data(0x0406);
LCD_WR_CmdPar(0x0039, 0x0202); //wr_cmd(0x0039);wr_data(0x0202);
LCD_WR_CmdPar(0x003c, 0x0001); //wr_cmd(0x003c);wr_data(0x0001);
LCD_WR_CmdPar(0x003d, 0x0000); //wr_cmd(0x003d);wr_data(0x0000);
//---------------------------------------End Gamma Setting---------------------------------------------//
//----------------------------------Display Windows 240 X 320----------------------------------------//
LCD_WR_CmdPar(0x0050, 0x0000); //wr_cmd(0x0050);wr_data(0x0000); // Horizontal Address Start Position
LCD_WR_CmdPar(0x0051, 0x00ef); //wr_cmd(0x0051);wr_data(0x00ef); // Horizontal Address End Position
LCD_WR_CmdPar(0x0052, 0x0000); //wr_cmd(0x0052);wr_data(0x0000); // Vertical Address Start Position
LCD_WR_CmdPar(0x0053, 0x013f); //wr_cmd(0x0053);wr_data(0x013f); // Vertical Address End Position
//----------------------------------End Display Windows 240 X 320----------------------------------//
//-------------------------------------------Frame Rate Setting-------------------------------------------//
LCD_WR_CmdPar(0x0060, 0xa700); //wr_cmd(0x0060);wr_data(0xa700); //Gate scan control
LCD_WR_CmdPar(0x0061, 0x0001); //wr_cmd(0x0061);wr_data(0x0001); //Non-display Area setting
LCD_WR_CmdPar(0x0090, 0x0033); //wr_cmd(0x0090);wr_data(0x0033); //RTNI setting
//-------------------------------------------END Frame Rate setting------------------------------------//
LCD_WR_CmdPar(0x0007, 0x0133); //wr_cmd(0x0007);wr_data(0x0133); //Display Control1
Delay_nms(1); //Delayms(1); //for (i = 50000; i > 0; i--); //SysTickDelay(50); //Delay 50ms
LCD_WR_Cmd(0x0022); //wr_cmd(0x0022);
}
}
void Delay_nms(int n)
{
u32 f = n, k;
for (; f != 0; f--)
{
for (k = 0xFFF; k != 0; k--)
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -