微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于TFT彩屏

关于TFT彩屏

时间:10-02 整理:3721RD 点击:
用彩屏显示图片,图片大小取模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);
显示的图片就变成乱码。
为什么会这样,求指导

从代码本身来看应该是没有问题的,很有可能是硬件本身不稳定的原因。如果能贴出彩屏的显示图片就更好了。另外我有一点疑问:你的图片数据量是怎么计算的啊(也就是1680和3072怎么计算的)。我的计算方法是24*32*2(液晶像素点16位模式)=1563,36*48*2=3456。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top