友善之臂光盘中所带的2451开发板4.3寸LCD P43-1509驱动例程下载进去后屏幕是白屏,bin文件下载进去后现象一样,
// 初始化LCD
void lcd_init(void)
{
// 配置GPIO用于LCD相关的功能
GPCCON = 0xAAAAAAAA;
GPDCON = 0xAAAAAAAA;
// 打开LCD电源
GPBCON &= ~(0x3<<2);
GPBCON |= (1<<2);
GPBDAT |= (1<<1);
// 打开背光
GPGCON &= ~(0x3<<14);
GPGCON |= (1<<14);
GPGDAT |= (1<<7);
// 配置VIDCONx,设置接口类型、时钟、极性和使能LCD控制器等
VIDCON0 |= (0<<22)|(0<<13)|(9<<6)|(1<<5)|(1<<4)|(0<<2)|(3<<0);
VIDCON1 |= (1<<6)|(1<<5);
// 配置VIDTCONx,设置时序和长宽等
// 设置时序
VIDTCON0 = VBPD<<16 | VFPD<<8 | VSPW<<0;
VIDTCON1 = HBPD<<16 | HFPD<<8 | HSPW<<0;
// 设置长宽
VIDTCON2 = (LINEVAL << 11) | (HOZVAL << 0);
// 配置WINCON0,设置window0的数据格式
WINCON0 |= (1<<0);
WINCON0 &= ~(0xf << 2);
WINCON0 |= 0xB<<2;
// 配置VIDOSD0A/B/C,设置window0的坐标系
#define LeftTopX 0
#define LeftTopY 0
#define RightBotX 479
#define RightBotY 271
VIDOSD0A = (LeftTopX<<11) | (LeftTopY << 0);
VIDOSD0B = (RightBotX<<11) | (RightBotY << 0);
// 置VIDW00ADD0B0和VIDW00ADD1B0,设置framebuffer的地址
VIDW00ADD0B0 = FRAME_BUFFER;
VIDW00ADD1B0 = (((HOZVAL + 1)*4 + 0) * (LINEVAL + 1)) & (0xffffff);
}
主程序:
void Main(void)
{
U8 c = 1;
lcd_init();
//LCD_Init();
//LCD_Display_Bmp(0,0,480,272,gImage_image);
while(1)
{
switch(c)
{
case '1':
// ??
lcd_clear_screen(0x000000); // ??
break;
case '2':
// ???
lcd_draw_cross(50, 50, 20, 0x0000ff); // ??
break;
case '3':
// ???
lcd_draw_hline(30, 100, 200, 0xff0000); // ??
break;
case '4':
// ???
lcd_draw_vline(50, 50, 150, 0x00ff00); // ??
break;
case '5':
// ??
lcd_draw_circle();
c = '1';
break;
}
delay(1000000);
}
}