芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
1.8寸TFT彩屏图片显示教程STM32单片机
原创 精华 发布时间:2024/01/15 16:26
版块:
电子DIY
简介:1.8寸TFT彩屏图片显示教程

 

最近网购了一块1.8寸TFT彩屏,准备用来做单片机图片显示,卖家也赠送了测试例程。本图片显示程序就是根据例程改造而来。

视频内部包含了图片循环显示和图片静止显示,以及如何取模。

图片取模方法如下:

1.首先打开PS(没有的可以自行下载一个,也可以用别的软件,能自定义图片尺寸即可),设置图片尺寸为120*160,(TFT彩屏最大显示尺寸为128*160),然后导入自己喜欢的图片,然后保存为 .jpg格式(其他格式图片取模软件无法打开)。

 

2.打开图片取模软件(没有的可以在开源文件里找),设置方法如图所示

注意最大宽度和高度可以自定义,但是需要与程序里面的参数保持一致,也不要超过TFT彩屏能显示的最大尺寸,否则会显示乱码。

 

3.打开在PS里制作好的图片,然后保存,注意名字里面不能出现特殊字符:(  /|\:<*?>  ),也最好不要出现中文,否则keil无法识别,需要手动修改名字。

 

4.复制生成好的.c文件,在keil里找到Picture.h文件,将文件粘贴进去(可以删掉原来的图片代码),根据需求决定是否修改名字。

这个是生成的名字

const unsigned char gImage_1[38400] = { 后面程序内容省略}

其中 gImage_1后面的数字1就是我们保存时的重命名,可以根据需要在程序中进行修改。但是要与下面的代码保持一致。

 

//取模方式 水平扫描 从左到右 低位在前
void showimage(const unsigned char *p) //显示120*160 自定义图片
{
     int i,j,k; 
    unsigned char picH,picL;
    Lcd_Clear(WHITE); //清屏  
    
    for(k=0;k<1;k++)//纵坐标图片数量
    {
           for(j=0;j<1;j++)//横坐标图片数量
        {    
            Lcd_SetRegion(120*j+2,160*k,120*j+119,160*k+159);        //坐标设置
            for(i=0;i<120*160;i++)
             {    
                 picL=*(p+i*2);    //数据低位在前
                picH=*(p+i*2+1);                
                LCD_WriteData_16Bit(picH<<8|picL);                          
             }    
         }
    }        
}

这段代码里面的120和160指的是图片尺寸,注意要与生成的图片尺寸一致,否则显示乱码或者报错。(TFT彩屏最大显示尺寸为128*160)

 

void QDTFT_Test_Demo(void)
{
//    Lcd_Init();
//    LCD_LED_SET;//通过IO控制背光亮                
////    Redraw_Mainmenu();//绘制主菜单(部分内容由于分辨率超出物理值可能无法显示)
////    Color_Test();//简单颜色填充测试
////    Num_Test();//数码管字体测试
////    Font_Test();//中英文显示测试        
    showimage(gImage_1);//图片显示示例
 delay_ms(5000);
    showimage(gImage_2);//图片显示示例
 delay_ms(5000);
    showimage(gImage_3);//图片显示示例
 delay_ms(5000);

////    LCD_LED_CLR;//IO控制背光灭        
}

 

注意图片代码 gImage_后面的重命名要与 showimage(gImage_名字);一致,否则报错。例如图片代码名字为const unsigned char gImage_1 ,那么  showimage(gImage_1);  ,否则报错。注意STM32F103C8T6单片机最多能够储存3张120*160 自定义图片。

 

下面是实际操作视频,视频内包括图片静止显示和动态显示两种,包括具体操作方法,不懂的可以参考一下。

 

帖子内涉及到的代码及软件均已开源。需要的可以下载。

创作不易,喜欢就支持一下制作吧!

工程附件
1.8寸TFT显示屏 - 副本.rar
测试图片与取模软件.rar
视频教程.zip
DIY
2024/01/15 16:26
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
发布者
神秘的实验室
最新帖子
萤火工场GD32VW553-IOT测评+蓝牙串口透传树莓派pico 2测评 - 初体验【工程师经验】+ 飞线【开源】zvs142857 2.1A,3A快充 充电宝迷你UC3842 开关电源优化全解析:攻克常见难题,提升性能
热门版块
查看更多
电子DIY
维修技术
电子元器件
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计
开源项目
萤火工场

173

收藏

分享

微信扫码
分享给好友

评论