1.给出实现显示picture的main函数代码,包括初始化,和调用显示图片代码;
其中NVIC中断这一块没怎么了解,所以直接按部就班,接下来就是初始化工作,重点是LCD_Init(),里面主要设计gpio,时钟和FSMC初始化,下次可以直接调用;然后就是LCD_DisplayString等LCD显示调用函数,这些可以理解为LCD配套编写的显示函数,这里也是用的示例;
2.然后就是图片该怎么去在LCD上面进行显示,设置一个图片数据头
__packed typedef struct _COLORHEAD
{
unsigned char scan; //扫描方式
unsigned char gray; //像素值设置
unsigned short w; //长
unsigned short h; //高
unsigned char is565; //对于rgb三色的bit位安排方式
unsigned char rgb; //rgb三色排列顺序 0x1B,常用
}COLORHEAD;
所有的图片数据存储在一个一维数组中,可以通过下面这个方式来给结构体赋值,但是不是很懂,但是正确,测过。
void picture_display(u16 x,u16 y,u8 * imgx)
{
COLORHEAD *imginfo;
u8 ifosize=sizeof(COLORHEAD);
imginfo=(COLORHEAD*)imgx;
LCD_DisplayNum(10,60,imginfo->scan,10,16,1);
LCD_DisplayNum(10,80,imginfo->gray,10,16,1);
LCD_DisplayNum(10,100,imginfo->w,10,16,1);
LCD_DisplayNum(10,120,imginfo->h,10,16,1);
LCD_DisplayNum(10,140,imginfo->is565,10,16,1);
LCD_DisplayNum(10,160,imginfo->rgb,10,16,1);
picture_show(x,y,imginfo->w,imginfo->h,imginfo->scan,imgx+ifosize);
}
imgx是传输进来的一个一维数组,前面几个数据都是数据头里面的数据,以这样方式得到图片关键数据,imgx+ifosize则是跳过数据头的那几个数据,目前对应的应该是像素值了,我这里测试给的是240X320的像素值,每个像素值是2个字节。
3.接下来做摄像头部分就是将得到的数据存储到imgx数组中,方便LCD显示。