关于TFT彩屏

2019-07-16 03:51发布

用彩屏显示图片,图片大小取模24*32时,
字模为const unsigned char code gImage_picture[1680]={...};
显示函数为
void picture_play(uint16 xStart,uint16 xEnd,uint16 yStart,uint16 yEnd)
{
        uint16 m;
        cs=0;
        TFT_SetRamAddr(xStart,xEnd-1,yStart,yEnd-1);
        rs=1;
        for(m=0;m<(1680/2);m++)
        {
                WriteDat(gImage_picture[m*2+1]);
                WriteDat(gImage_picture[m*2]);
        }
        cs=1;
}
主函数中
picture_play(24,48,24,60);
能正常显示图片。

而改成36*48时,
字模为const unsigned char code gImage_picture[3072] ={...};
显示函数
void picture_play(uint16 xStart,uint16 xEnd,uint16 yStart,uint16 yEnd)
{
        uint16 m;
        cs=0;
        TFT_SetRamAddr(xStart,xEnd-1,yStart,yEnd-1);
        rs=1;
        for(m=0;m<(3072/2);m++)
        {
                WriteDat(gImage_picture[m*2+1]);
                WriteDat(gImage_picture[m*2]);
        }
        cs=1;
}
主函数中同样扫描
picture_play(24,60,24,72);
显示的图片就变成乱码。
为什么会这样,求指导
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
allkill
1楼-- · 2019-07-16 05:17
从代码本身来看应该是没有问题的,很有可能是硬件本身不稳定的原因。如果能贴出彩屏的显示图片就更好了。另外我有一点疑问:你的图片数据量是怎么计算的啊(也就是1680和3072怎么计算的)。我的计算方法是24*32*2(液晶像素点16位模式)=1563,36*48*2=3456。
ch4n9
2楼-- · 2019-07-16 08:42
allkill 发表于 2012-12-23 11:37
从代码本身来看应该是没有问题的,很有可能是硬件本身不稳定的原因。如果能贴出彩屏的显示图片就更好了。另 ...

就是那个数据量错了。没按取模后给出的长宽算。

一周热门 更多>