TFT_LCD显示彩 {MOD}图片,自己写底层函数

2019-08-13 20:44发布

本帖最后由 aiyeba 于 2017-2-16 15:15 编辑

1、先从网上下载240*320的图片

2、然后用画图软件转成BMP格式的


3、用软件输出数组


4、最后调用一个函数



void DisplayPicture(void)
{           
                u16 temp,pos,t;  
                LCD_SetCursor(0x00,0x0000);
                LCD_WriteRAM_Prepare();
               for(pos=0;pos<320;pos++)
                {
                        for(t=0;t<240*2;t++)
                        {
                                temp=gImage[pos*480+t]*256+gImage[pos*480+t+1];  //这个地方  改成gImage[pos*480+t]<<8+gImage[pos*480+t+1];  好像有问题
                                t++;                                
                               LCD_WriteRAM(temp);      //理解这个函数  对摄像头那一章才能有真正的理解                           
                        }                                
                }               
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
47条回答
aiyeba
1楼-- · 2019-08-15 21:38
南有乔木 发表于 2017-2-16 14:43
哎呀,妥了,谢谢啦!!!

能讲解下思路么

思路就是:
单 {MOD}和彩 {MOD}
先说一下TFT的彩 {MOD}    一个点占2个字节   RGB  565   也就是一个点 可以有2^16种 {MOD}调
那么240*320个点  就需要240*320*2个字节  
生成的数组  我们把2个字节合成一个u16的temp 也就是调好的一个点的颜 {MOD}
一个一个的写入LCD里面    这里有一个函数LCD_WriteRAM(temp);     

aiyeba
2楼-- · 2019-08-16 00:23
aiyeba 发表于 2017-2-16 14:56
思路就是:
单 {MOD}和彩 {MOD}
先说一下TFT的彩 {MOD}    一个点占2个字节   RGB  565   也就是一个点 可以有2^16 ...

单 {MOD}的话 其实只是描点了

因为这个temp是固定的

也就是 只有240*320     temp=RED;  用宏定义就可以   

看看原子哥的写子的时候   这个temp就是固定了各种颜 {MOD}  也就是具体的值   

其实 我们还可以自己调出一些很偏的颜 {MOD}   根据RGB 565来就行
一只风筝
3楼-- · 2019-08-16 00:54
mark。先看下
yyx112358
4楼-- · 2019-08-16 02:00
 精彩回答 2  元偷偷看……
aiyeba
5楼-- · 2019-08-16 06:41
yyx112358 发表于 2017-2-16 16:54
在原子的硬件和驱动下是成立的,但是如果考虑通用性,需要注意两个方面:
1、颜 {MOD}是RGB还是GBR,在不同地 ...

那BGR是不是生成数组的软件也就不一样了  因为对我们而言  
我们是不会具体去关注rgb的数值的 。

大小端  就是2字节合成u16的时候  那个是高字节?
这个软件上面有设置
479123159
6楼-- · 2019-08-16 10:18
本帖最后由 479123159 于 2017-4-4 16:01 编辑

temp=gImage[pos*480+t]*256+gImage[pos*480+t+1];
老哥,能讲解一下这句的意思吗?

一周热门 更多>