|
这是初始化代码:
Init_data(0x0042,0x0008);
//DelayMs(50);
//gamma setting
Init_data(0x0046,0x00B4);
Init_data(0x0047,0x0043);
Init_data(0x0048,0x0013);
Init_data(0x0049,0x0047);
Init_data(0x004A,0x0014);
Init_data(0x004B,0x0036);
Init_data(0x004C,0x0003);
Init_data(0x004D,0x0046);
Init_data(0x004E,0x0005);
Init_data(0x004F,0x0010);
Init_data(0x0050,0x0008);
Init_data(0x0051,0x000a);
//Window setting
Init_data(0x0002,0x0000);
Init_data(0x0003,0x0000);
Init_data(0x0004,0x0000);
Init_data(0x0005,0x00EF);
Init_data(0x0006,0x0000);
Init_data(0x0007,0x0000);
Init_data(0x0008,0x0001);
Init_data(0x0009,0x003F);
DelayMs(10);
Init_data(0x0001,0x0006);
Init_data(0x0016,0x00C8);
Init_data(0x0023,0x0095);
Init_data(0x0024,0x0095);
Init_data(0x0025,0x00FF);
Init_data(0x0027,0x0002);
Init_data(0x0028,0x0002);
Init_data(0x0029,0x0002);
Init_data(0x002A,0x0002);
Init_data(0x002C,0x0002);
Init_data(0x002D,0x0002);
Init_data(0x003A,0x0001);
Init_data(0x003B,0x0001);
Init_data(0x003C,0x00F0);
Init_data(0x003D,0x0000);
DelayMs(20);
Init_data(0x0035,0x0038);
Init_data(0x0036,0x0078);
Init_data(0x003E,0x0038);
Init_data(0x0040,0x000F);
Init_data(0x0041,0x00F0);
Init_data(0x0038,0x0000);
//power setting
Init_data(0x0019,0x0049);
Init_data(0x0093,0x000A);
DelayMs(10);
Init_data(0x0020,0x0020);
Init_data(0x001D,0x0003);
Init_data(0x001E,0x0000);
Init_data(0x001F,0x0009);
Init_data(0x0044,0x0053);
Init_data(0x0045,0x0010);
DelayMs(10);
Init_data(0x001C,0x0004);
DelayMs(20);
Init_data(0x0043,0x0080);
DelayMs(50);
Init_data(0x001B,0x000a);
DelayMs(40);
Init_data(0x001B,0x0012);
DelayMs(40);
//display on setting
Init_data(0x0090,0x007F);
Init_data(0x0026,0x0004);
DelayMs(40);
Init_data(0x0026,0x0024);
Init_data(0x0026,0x002C);
DelayMs(40);
// Init_data(0x0070,0x0008);
Init_data(0x0070,0x0008);
Init_data(0x0026,0x003C);
Init_data(0x0057,0x0002);
Init_data(0x0055,0x0000);
Init_data(0x0057,0x0000);
设置窗口:
boolean disppriv_set_window(unsigned short left, unsigned short top, unsigned short width, unsigned short height)
{
if((left+width)<=240)
{
// m_sa_select(3);
Init_data(0x0002, left>>8);
Init_data(0x0003, left);
Init_data(0x0006, top>>8);
Init_data(0x0007, top);
//Init_data(0x0050,left);
Init_data(0x0004, (left+width-1)>>8);
Init_data(0x0005, left+width-1);
//Init_data(0x0052,top);
Init_data(0x0008, (top+height-1)>>8);
Init_data(0x0009, top+height-1);
return TRUE;
}
else
return FALSE;
}
。。。。。。
。。。。。。
对lcd读数据:
disppriv_set_window(i,j,1,1); //先固定窗口大小为一个象素
LCD_COMMAND(0x0022);
for(j=0; j<320; j++)
{
for(i=0; i<240; i++)
{
disppriv_set_window(i,j,1,1); //先固定窗口大小为一个象素
LCD_COMMAND(0x0022); //发送读取该象素对应的RAM指令
buf = *((volatile unsigned short int *) 0x40100000); //读取第一个无效数据
buf = *((volatile unsigned short int *) 0x40100000); //读取有效数据
*pt =buf; //将读到的数据存入数组中
pt++;
}
}
同样的一段代码,换了一块lcd后,改了初始化代码,一点问题都没有。麻烦大家帮看看,是什么地方出了问题,谢谢! |
|