void LCD_Init(void)
{
LCD_InitFSMC();
delay_ms(50); // delay 50 ms
LCD_WriteReg(0x0000,0x0001);
delay_ms(50); // delay 50 ms
//尝试9486 ID的读取
LCD_WR_REG(0XD3);
LCD_RD_DATA(); //dummy read
LCD_RD_DATA(); //读到0X00
lcddev.id=LCD_RD_DATA(); //读取94
lcddev.id<<=8;
lcddev.id|=LCD_RD_DATA(); //读取86
/* Exit sleep mode */
LCD_WR_REG(0x0011);
/* Wait five milliseconds */
delay_ms(5); // delay 5 ms
/* Enter normal mode */
LCD_WR_REG(0x0013);
/* Power Setting */
LCD_WR_REG(0x00d0);
LCD_WR_DATA(0x0007); //1.0 * Vci
LCD_WR_DATA(0x0041);
LCD_WR_DATA(0x0018);
/* Vcom control */
LCD_WR_REG(0x00d1);
LCD_WR_DATA(0x0000);
LCD_WR_DATA(0x000a);
LCD_WR_DATA(0x0010);
/* Power setting for normal mode */
LCD_WR_REG(0x00d2);
LCD_WR_DATA(0x0001);//Gramma driver amplifer and source driver amplifer
LCD_WR_DATA(0x0013);
/* Panel driving setting */
LCD_WR_REG(0x00c0);
LCD_WR_DATA(0x0010);
LCD_WR_DATA(0x003b);
LCD_WR_DATA(0x0000);
LCD_WR_DATA(0x0002);
LCD_WR_DATA(0x0011);
/* Display timing setting for normal mode */
LCD_WR_REG(0x00c1);
LCD_WR_DATA(0x0010);
LCD_WR_DATA(0x0013);
LCD_WR_DATA(0x0088);
/* Frame rate and inversion control */
LCD_WR_REG(0x00c5);
LCD_WR_DATA(0x0002);
/* Gramma setting */
LCD_WR_REG(0x00c8);
LCD_WR_DATA(0x0000);
LCD_WR_DATA(0x0037);
LCD_WR_DATA(0x0025);
LCD_WR_DATA(0x0006);
LCD_WR_DATA(0x0004);
LCD_WR_DATA(0x001e);
LCD_WR_DATA(0x0026);
LCD_WR_DATA(0x0042);
LCD_WR_DATA(0x0077);
LCD_WR_DATA(0x0044);
LCD_WR_DATA(0x000f);
LCD_WR_DATA(0x0012);
/* */
LCD_WR_REG(0x00f3);
LCD_WR_DATA(0x0040);
LCD_WR_DATA(0x000a);
/* */
LCD_WR_REG(0x00f6);
LCD_WR_DATA(0x0080);
LCD_WR_REG(0x00f7);
LCD_WR_DATA(0x0080);
/* Set address mode */
LCD_WR_REG(0x0036);
LCD_WR_DATA(0x0008);
/* Set pixel format */
LCD_WR_REG(0x003a);
LCD_WR_DATA(0x0055);
LCD_WR_REG(0x0021);
/* Set column address */
LCD_WR_REG(0x002a);
LCD_WR_DATA(0x0000);
LCD_WR_DATA(0x0000);
LCD_WR_DATA(0x0001);
LCD_WR_DATA(0x003f);
/* Set page address */
LCD_WR_REG(0x002b);
LCD_WR_DATA(0x0000);
LCD_WR_DATA(0x0000);
LCD_WR_DATA(0x0001);
LCD_WR_DATA(0x00df);
/* Delay */
delay_ms(120); // delay 120 ms
/* Set display on */
LCD_WR_REG(0x0029);
/* Write memory start */
LCD_WR_REG(0x002c);
// LCD_Display_Dir(1); //默认为横屏
LCD_LED=1; //点亮背光
LCD_Clear(BLACK);
}
这个我试过可以显示
|