一、图片显示主要代码,不包含ILI9341驱动部分
void LCDOpenWindows(u16 x, u16 y, u16 len, u16 wid)
{
LCD_WR_REG(0X2A);
LCD_WR_DATA(x>>8); //start
LCD_WR_DATA(x-((x>>8)<<8));
LCD_WR_DATA((x+len-1)>>8); //end
LCD_WR_DATA((x+len-1)-(((x+len-1)>>8)<<8));
LCD_WR_REG(0X2B);
LCD_WR_DATA(y>>8); //start
LCD_WR_DATA(y-((y>>8)<<8));
LCD_WR_DATA((y+wid-1)>>8); //end
LCD_WR_DATA((y+wid-1)-(((y+wid-1)>>8)<<8));
LCD_WR_REG(0x2C);
}
/****************************************************************************
* 名 称:void ili9341_DrawPicture(u16 StartX,u16 StartY,u16 EndX,u16 EndY,const unsigned char *pic)
* 功 能:在指定座标范围显示一副图片
* 入口参数:StartX 行起始座标
* StartY 列起始座标
* EndX 行结束座标
* EndY 列结束座标
pic 图片头指针
* 出口参数:无
* 说 明:图片取模格式为水平扫描,16位颜色模式
* 调用方法:ili9320_DrawPicture(0,0,100,100,(u16*)demo);
****************************************************************************/
void LCD_ili9341_DrawPicture(u16 StartX,u16 StartY,u16 Xend,u16 Yend,const unsigned char *pic)
{
static u16 i=0,j=0;
u16 *bitmap = (u16 *)pic;
LCDOpenWindows(StartX,StartY,Xend,Yend);
for(i=StartY;i<Yend;i++)
{
for(j=StartX;j<Xend;j++)
{
LCD_WriteRAM(*bitmap++);
}
}
}
二、Image2LCD图片取模软件的设置方法
1、输出数据类型:C语言数组
2、扫描方式:水平扫描
3、输出灰度:16位真彩色
4、图片大小:按图片本身的尺寸设置即可
5、以下几项是不需要设置的(如被选中请取消):
A、包含图像头数据
B、自右至左,自底至顶扫描
C、高位在前(MSB First)
6、R5--G6--B5