中级会员
 
- 积分
- 224
- 金钱
- 224
- 注册时间
- 2015-7-1
- 在线时间
- 2 小时
|
5金钱
我用的ILI9341的液晶驱动 16位并口的
想在液晶上显示一张图片,调用了原子的
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,u16 *pic)
* 功 能:在指定座标范围显示一副图片
* 入口参数:StartX 行起始座标
* StartY 列起始座标
* EndX 行结束座标
* EndY 列结束座标
pic 图片头指针
* 出口参数:无
* 说 明:图片取模格式为水平扫描,16位颜色模式
* 调用方法:ili9320_DrawPicture(0,0,100,100,(u16*)demo);
****************************************************************************/
void ili9341_DrawPicture(u16 StartX,u16 StartY,u16 Xend,u16 Yend,u16 *pic)
{
static u16 i=0,j=0;
u16 *bitmap = (u16 *)pic;
LCDOpenWindows(StartX,StartY,Xend,Yend);
for(i=0;i<Yend;i++)
{
for(j=0;j<Xend;j++) LCD_WriteRAM(*bitmap++);
}
}
显示出来的效果不仅是乱的,而且把主页右边的的蓝色框框也弄没了,这是为什么呀?不解
程序不是打开一个窗口,然后我把图片放在哪个窗口上吗?
|
最佳答案
查看完整内容[请看2#楼]
回复【3楼】正点原子:
---------------------------------
ok 已经解决
今天下午遇到了一个很奇怪的问题
我在不给液晶刷屏的情况下让"*"这个符号通过按键上移下移,同时我给上一个状态为" "来清除"*"这个符号,
但是实际效果却不是这样的
"*"这个符号一直存在,等于说整个列都是"*"
这是为什么," "这个不是清除了上一个"*"吗?
if(Content_Table ==0 && bit0 == 0)//第一层 ...
|