描述:显示图片形式
图片:
本人用mini2440裸机驱动LCD(T35),想让其显示取模的图片数组,倒是可以显示,就是图片显示分成两部分,上一半,下一半,左面还有空出来的,不知道什么原因,求高手指点一下。
先将部分代码贴出来,谢谢大家。
/*******LCD初始化******/
void init_lcd(void)
{
//配置LCD相关引脚
rGPCUP = 0xffffffff; //使能附加上拉
rGPCCON = 0xaaaa02a9; //选择VD[7~0]
rGPDUP = 0x00000000; //禁止使能附加上拉
rGPDCON = 0xaaaaaaaa;
//设置时钟信号 TFT型LCD 24位
rLCDCON1 = (3<<8)|(0<<7)|(3<<5)|(13<<1)|0;
//设置LCD参数
rLCDCON2 = (10<<24)|(239<<14)|(4<<6)|(1); //设置屏幕的垂直长度
rLCDCON3 = (0x44<<19)|(319<<8)|(0X04); //设置屏幕的水平长度
rLCDCON4 = (1);
rLCDCON5 = (BPP24BL<<12)|(INVVCLK<<10)|(INVVLINE<<9)|
(INVVFRAME<<8)|(INVVD<<7)|(INVVDEN<<6)|
(PWREN<<3)|(BSWP<<1)|(HWSWP);
//用于设置显示缓存区时,取低21位地址
//U32 LCD_BUFFER[320][240];
rLCDSADDR1 = (((U32)LCD_BUFFER>>22)<<21)|M5D((U32)LCD_BUFFER>>1);
rLCDSADDR2 = M5D(((U32)LCD_BUFFER + (320*240*4))>>1 );
rLCDINTMSK |= (3); //屏蔽LCD中断
rTCONSEL = 0; //无效LPC3600
rGPGUP &= (~(1<<4))|(1<<4); //GPG4上拉电阻无效
rGPGCON &= (~(3<<8))|(3<<8); //设置GPG4为LCD_PWREN
rGPGDAT |= (1<<4); //GPG4置1
rLCDCON5 &= (~(1<<3))|(1<<3); //有效PWREN信号
rLCDCON5 &= (~(1<<5))|(0<<5); //PWREN信号极性不翻转
rLCDCON1|=1; //LCD开启
}
/*******************************************
在LCD屏幕上画一个图片 24位图片
********************************************/
void draw_picture(const unsigned char picture[])
{
int x, y, t = 0;
for(y = 0; y < 240; y++)
{
for(x = 0; x < 320; x++)
{
LCD_BUFFER[y][x] = (picture[t]<<16)|(picture[t+1]<<8)|(picture[t+2]);
t += 3;
}
}
}
的到得显示结果 如图中,请大家一起来探讨一下原因。