TFT-LCD 规格:2.4寸
驱动IC:ILI9341
硬体接线:TFT 模组的 D15~D0 接到一个 16bit 的 I/O PORT 的 D15~D0
各位好:
ILI9341 的初始化以及画点画线等相关函数都已经完成了,现在想在屏幕上显示如上图的一张图片,
大小是 85 × 113,16 位彩 {MOD},其余选项如图面上的设定。
转出来的点阵数据为: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 位元来显示一个点的颜 {MOD}值,
能否给我指导我一下具体的程式写法,谢谢。
[
本帖最后由 PSIR 于 2013-12-9 13:39 编辑 ]
此帖出自
小平头技术问答
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 的设定要改成「高位在前」,
我也不知道什麼原因,欢迎大神指导。
一周热门 更多>