【请教】,STC12C5A60S2读16位BMP图片异常
请教,单片机STC12C5A60S2读16位BMP图片,所有颜色都成了蓝色,图像右边部分有重叠,不正常,向各位请教。主程序程序如下:(程序是参考网上的)
main()
{
unsigned int x,y; //定义液晶屏坐标
unsigned long j;//执行循环需要的临时变量
unsigned int i;
unsigned long AddTemp=262144;//SD卡地址第一个数据物理地址初始值,可以用winhex查看,这里是512扇区,512x512=262144,根据实际SD卡内容更改
lcd_initial();//液晶屏初始化
Write_COM(0x2C);
//dsp_single_colour(0xf800);
TFT_Clr(0xf800 );
delayms(5);
SdInit(); //SD卡初始化
while(1)
{
x=0;
y=0;
for(j=0;j<80;j++) //80表示一幅图片含有80x512字节的信息
{
SdReadBlock(DATA,AddTemp+(j*512),512);//每次读出512字节放到缓冲区
for(i= 0;i<256;i++) //然后写到液晶屏,可以显示256个像素,每个像素16位即2个字节
{
LCD_SetRamAddr(x,x,y,y);
LCD_DataWrite (DATA);
LCD_DataWrite ( DATA );
x++;
if(x==128) //检测是否写到屏的边缘 128x160
{
y++;
x=0;
if(y==160)
y=0;
}
}
}
AddTemp = AddTemp+((j+16)*512); //写完一幅图片后把SD地址加80x512到下一个图片地址
while(KEY); //等待按键按下继续执行循环显示下一幅图片,如果没有按下则等待
}
}
图片扫描方式:
可能是像素太高了。 选择16位 ,rgb565格式的,不要选择rgb555. rgb565格式需要做下处理,可以参考http://www.amobbs.com/forum.php?mod=viewthread&tid=4209354 bmp数据区有个偏移字节,楼主貌似没从那开始吧 对啊 图像头一定要挑出去的 否则不行的 主要原因还是rgb565与rgb555的原因
RGB565和555要选对 或者做处理 以前论坛有人遇到过这问题 楼主,请问你里面用到的液晶是哪里买的啊
czc818 发表于 2012-12-8 15:24 static/image/common/back.gif
楼主,请问你里面用到的液晶是哪里买的啊
淘宝上搜吧,一大把的。呵呵,SPI驱动。
页:
[1]