打印

请教在 2.4 寸 TFT 上显示内部 FLASH 图片的方法

[复制链接]
1348|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
PSIR|  楼主 | 2013-12-9 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 PSIR 于 2013-12-9 13:35 编辑



TFT-LCD 规格:2.4寸
驱动IC:ILI9341
硬体接线:TFT 模组的 D15~D0 接到一个 16bit 的 I/O PORT 的 D15~D0

各位好:

ILI9341 的初始化以及画点画线等相关函数都已经完成了,现在想在屏幕上显示如上图的一张图片,
大小是 85 × 113,16 位彩色,其余选项如图面上的设定。
转出来的点阵数据为:85 × 113 × 2(16BPP) = 19120 + 8个Byte的影像头数据 = 19218 个元素如下所示:

const unsigned char gImage_flower16bit_H[19218] = {
0X00,0X10,0X55,0X00,0X71,0X00,0X01,0X1B,        //8个Byte的影像头数据
         ..............................
};

我的问题是,当有包含 8 个Byte的影像头数据时,这段循环查表的程式要怎么写?

假设我已经对 ILI9341 设置好一个 85 × 113 的显示范围,
我该怎么顺序抓取资料才能让点阵数据在屏幕上正确显示?
因为我的资料输出是 16 位元,而点阵数据是 8 位元一组,
这意味着我必须抓两次 8 位元合成一个 16 位元来显示一个点的颜色值,
能否给我指导我一下具体的程式写法,谢谢。

相关帖子

沙发
PSIR|  楼主 | 2013-12-10 16:35 | 只看该作者
unsigned short send_H;
unsigned short send_L;
unsigned long size;
unsigned long temp=19120;  //85 × 113 × 2(16BPP)

for(size=0;size<temp;size++){
  send_H=gImage_flower16bit_H[size]; send_H<<=8;        //移到Hi Byte
  send_L=gImage_flower16bit_H[++size];
  LCD_WR_DATA( send_H | send_L );
}
----------------------------------------------------
我将8个Byte的影像头数据去掉并写了一小段程式测试,
这样写就行了,不过 Image2lcd 的设定要改成「高位在前」,
我也不知道什麼原因,欢迎大神指导。

使用特权

评论回复
板凳
000_yanf| | 2013-12-10 17:44 | 只看该作者
PSIR 发表于 2013-12-10 16:35
unsigned short send_H;
unsigned short send_L;
unsigned long size;

Image2lcd帮助信息里写的很清楚

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

119

帖子

1

粉丝