TFT-LCD屏幕显示图片

TFT_LCD显示图片时,图片大小选择要适配屏幕大小,如果要竖屏显示的话,则屏幕宽x高为240x320,所以图片也要找240x320的,

如果是横屏显示,则屏幕宽x高为320x240,所以图片也要找320x240的

图片取模软件 —— Image2Lcd v2.9

因为本次实验是竖屏显示,所以先在网上找一张240x320的图片,然后用图片取模软件打开

输出数据类型选择C语言数据,扫描模式为水平,输出灰度默认是单色的,因为屏幕是16位的,所以要改为16位真彩色,最大宽度和高度与图片一致,取消包含图像头数据,勾选高位在前,这与后面编写代码有关,然后点击下方的16位彩色,在颜色位数上选择RGB565的数据格式;然后就可点击保存,命名为Picture1.h,文件里会有图片的取模数据,后续在代码中导入该头文件直接使用即可

代码

Picture1.h

这个数组就是用取模软件取出的图片数据,数据比较大,有153600个字节,差不多150KB,一定要用const修饰,放到STM32的内部Flash中,因为图片大小为320*240个像素点,每个像素点由16位确定,共两个字节,所以320 * 240 * 2 = 153600

STM32F103ZET6的Flash大小为512KB,所以同样大小的图片最多只能存放三张;如果用外部Flash芯片如16M或者64M大小的,则可以放更多的图片

const unsigned char gImage_Picture1[153600] = { /* 0X10,0X10,0X00,0XF0,0X01,0X40,0X01,0X1B, */
0XA4,0X0C,0X93,0XCB,0XA4,0X2D,0XAC,0X8E,0XA4,0X0C,0XA4,0X0C,0XB4,0X8E,0XBC,0XAE,
0XAC,0X2D,0XBC,0XAE,0XC4,0XEF,0X8B,0X49,0X8B,0X48,0XAC,0X2C,0XC4,0XCE,0XC4,0XAE,
0XC4,0XCE,0XCC,0XEE,0XC4,0X8D,0XDD,0X50,0XD5,0X50,0XC4,0XAE,0XAB,0XEB,0XC4,0XCE,
0XCC,0XEF,0XA3,0XEB,0XC4,0XCF,0XEE,0X14,0XD5,0X30,0XBC,0X6D,0XCC,0XCE,0XCC,0XEF,

TFT_LCD.c

在前面显示中英文代码基础上增加这个显示图片的函数

首先同样要设置窗口,然后用switch语句判断图片序号,用一个常量指针指向不同图片序号的图片数组;再逐行写入图片数据

/*** @name   LCD_ShowPicture* @brief  LCD屏幕显示图片* @param  usXstar:窗口起点x轴坐标*             usYstar:窗口起点y轴坐标*            usPicH:图片的水平分辨率*             usPicV:图片的垂直分辨率*             ucPicNum:图片序号* @retval None  */
static void LCD_ShowPicture(uint16_t usXstar,uint16_t usYstar,uint16_t usPicH,uint16_t usPicV,uint8_t ucPicNum)
{uint32_t uiIndex;const uint8_t * pcPic = NULL;//设置窗口大小LCD_SetWindows(usXstar,usYstar,usPicH,usPicV);//获取图像数据首地址switch (ucPicNum){case 1: pcPic = gImage_Picture1;break;case 2: pcPic = gImage_Picture2;break;case 3: pcPic = gImage_Picture3;break;default: pcPic = gImage_Picture1;break;}//逐行写入图片数据/*因为TFT-LCD屏幕是16位的,即每个像素点的数据是16位,占两个字节,usPicH*usPicV表示图片共有多少个像素点,总共的像素点乘以2就表示图片取模数组里字节的个数,如240*320*2 = 153600*/for(uiIndex=0;uiIndex<usPicH*usPicV*2;uiIndex+=2){//因为图片取模时是数据高位在前,每次都是写两个字节(16位),所以要将第一个字节左移8位,再或上第二个字节作低8位LCD_WRITE_DATA((pcPic[uiIndex]<<8) | pcPic[uiIndex+1]);}
}

System.c

系统运行函数中直接调用TFT_LCD显示图片函数,x,y轴的坐标都是从0开始,传入屏幕的宽240,高320,图片序号为1,烧录代码后便能显示图片,代码量比较大,烧录慢要等待

/*
* @name   Run
* @brief  系统运行
* @param  None
* @retval None
*/
static void Run()
{TFT_LCD.LCD_ShowPicture(0,0,LCD_WIGHT,LCD_HIGHT,1);             //屏幕显示图片
}

显示效果

图片1

图片2

TFT-LCD屏幕显示图片相关推荐

  1. 基于STM32的智能行车辅助系统(自动大灯,倒车报警,自动雨刷,温湿度传感器,TFT 1.3寸LCD屏幕显示,ESP8266WIFI)

    基于STM32+ESP8266的智能行车辅助系统 基于STM32的智能行车辅助系统(自动大灯,倒车报警,自动雨刷,温湿度传感器,TFT 1.3寸LCD屏幕显示,ESP8266WIFI),这是一个课程设 ...

  2. 初试树莓派在2.2寸QVGA SPI TFT LCD上显示图片

    春节前整理抽屉翻出来一块2.2寸的240x320 SPI的TFT LCD.想起来这是当初做完Arduino搭配176x220的实验(http://blog.csdn.net/ki1381/articl ...

  3. DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V

    DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V 前言 IMG2LCD软件生成RGB565格式图片 使用取模软件对图片取模 实验结果 ...

  4. STM32 FSMC接口驱动4.3寸TFT LCD屏

    STM32 FSMC接口驱动4.3寸TFT LCD屏 STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏. 这里以STM32F103VET ...

  5. 图像颜色处理(一)----由LCD屏幕显示像素格式引出的思考(调色板,CLUT)

    先给自己打个广告,本人的微信公众号正式上线了,搜索:张笑生的地盘,主要关注嵌入式软件开发,股票基金定投,足球等等,希望大家多多关注,有问题可以直接留言给我,一定尽心尽力回答大家的问题 一 what ( ...

  6. 当TFT LCD液晶屏出现残影时该如何解决?

    TFT LCD 液晶屏 残影也叫"烧屏".在阴极射线管显示器中,这将导致磷的磨损,图案将被烧入显示器.但在液晶屏上使用时,不涉及实际加热或燃烧.如果在使用TFT LCD 液晶屏时遇 ...

  7. 简单明了操作——ESP8266 NodeMCU驱动TFT LCD液晶屏(制作透明小电视前奏)

    简单明了操作--ESP8266 NodeMCU驱动TFT LCD液晶屏(制作透明小电视前奏) 前言 准备材料 esp8266 NodeMCU(串口WiFi模块) 1.44inch SPI Arduin ...

  8. TFT LCD使用心得

    转载自bbs.21ic.com 最近一段时间工作上一直在使用TFT LCD,主要是3.5寸LCD,以SAMSUNG的LTV350QV及其一些台湾的兼容产品为主.工作的内容就是把这些屏在我们的产品上应用 ...

  9. S3C2440A驱动RGB接口TFT LCD的研究(转载)

    S3C2440A驱动RGB接口TFT LCD的研究 时间: 2009-02-25 11:29:50 来源:嵌入式在线 作者:纪宁宁,孙灵燕 1 引言     随着科技的进步,TFT LCD作为显示器件 ...

最新文章

  1. 2019学习Python的10个原因
  2. linux父进程中显示子进程pid,请教linux下c语言函数fork父进程打印子进程的PID
  3. Linux搭建私有Git服务器以及ssh免密登陆配置
  4. 转载:glut.h 与 stdlib.h中 的exit()重定义问题的解决
  5. android tv 应用安装器,论Android智能电视盒子必装应用之——QQ音乐TV版
  6. 小程序毕设作品之微信企业公司小程序毕业设计(6)开题答辩PPT
  7. LANP+KEEPALIVED集群(二)
  8. leaflet 把图片放到地图上L.imageTransform或者L.imageOverlay.rotated,把视频放到地图上L.videooverlay,把geoJson放到地图上,
  9. mysql优化面试整理-吊打面试官
  10. 星耀视界2019研讨会笔记
  11. python银行利息问题_python入门教程NO.8 用python写个存款利息计算器
  12. 地图--WGS84 高德坐标 百度坐标的相互转换(好用推荐)
  13. 2022.6.20-6.26 AI行业周刊(第103期):新的小生命
  14. sourcetree安装教程, sourtree新手入门 sourcetree使用教程 (不用太详细, 毕竟工作中用不到那么多, 就熟练使用常用的即可)
  15. JAVA--equal、length、Arrays、Static
  16. 6个简单好用的收件箱清理及管理工具
  17. 深度学习准备之安装双系统
  18. 非诚勿扰孟非经典语录
  19. 浏览器兼容性JS问题
  20. BAT 脚本转 EXE 工具

热门文章

  1. 雷迪RD8200管线探测仪参数/管线仪使用方法/管线仪说明书
  2. python 参数封装_扩展Python模块系列(三)----参数解析与结果封装
  3. mui H5+App 推送(华为手机亲测)
  4. 印象笔记与有道云笔记
  5. XXE无回显攻击详解
  6. java在面板中加入图片_我想在这面板上添加图片,可是图片显示不出来,求助~...
  7. 数组求和-reduce方法
  8. 利用Idea生成的类图分析框架源码
  9. ARC060 C - Tak and Cards(dp,背包)
  10. java 碳架山地车寿命_碳架自行车的好处和坏处