STM32 ILI9341驱动TFTLCD屏(三)
2024-04-29 来源:elecfans
上次已经常用的指令封装成函数,今天通过调用这些函数在屏幕上显示图片,让大家进一步了解ILI9341。
要让屏幕显示图片,那就要先把图片转化为计算机能识别的数据.,这里用Image2Lcd这款工具软件,把图片转换成特定的数据格式以用来匹配STM32系统所需要的显示数据格式。

图片转换成特定的数据格式步骤:
(1)把图片尺寸修改为想要显示的大小并保存;

(2)在Image2Lcd中打开要显示的图片;
(3)设置输出类型为C语言数组;扫描模式要和ILI9341的扫描方式一致;输出灰度选择屏幕适用的;确定要显示的宽度和高度;
(4)将生成的数组保存到一个h文件或c文件,方便调用。

数组保存到文件后,文件会自动打开,图片现在就变成了计算机能识别的C语言数组。下面分别在屏幕上全屏显示图片,局部显示图片,区域显示图片。

1.全屏显示图片
全屏显示图片,只需调用内存写入函数,把生成的数组全部写到显存,显存对应着屏幕上的每个像素点,所以要显示的图片就显示出来了。
#include 'stm32f4xx.h'
#include 'core_cm4.h'
#include 'delay.h'
#include 'ili9341.h'
#include '0.h'
int main()
{
ILI9341_Init();
ILI9341_WriteMemory((u16 *)gImage_0,240*320);
while(1);
}
其中头文件0.h放的就是Image2Lcd生成的数组gImage_0。
屏幕显示如下
2.局部显示图片
局部显示图片只需在全屏显示图片的基础上再开启局部显示功能,并设置局部范围的起始行和结束行,中间部分为局部区域。
#include 'stm32f4xx.h'
#include 'core_cm4.h'
#include 'delay.h'
#include 'ili9341.h'
#include '0.h'
int main()
{
ILI9341_Init();
ILI9341_WriteMemory((u16 *)gImage_0,240*320);
ILI9341_PartialModeOn();
ILI9341_SetPartialArea(50,270);
while(1);
}
设置局部区域起始行为50,结束行为270,局部区域为220行。屏幕显示如下,只能看到图片的部分区域,其余部分可以当成是被隐藏了,但仍然存在在现存中。这种模式下屏幕的列是不变的,只改变了行显示范围。
3.区域显示图片
要区域显示图片,那就不能用上面240*320像素生成的数组了,要把图片尺寸再进行修改,重新生成数组。
要把图片设定在一个区域内,就要确定行列的起始和结束。可以调用列地址设置和行地址设置,在屏幕上开窗,开完窗后就只能在这个范围内进行操作了。然后再调用写内存函数,把重新生成的数组写入内存中。
#include 'stm32f4xx.h'
#include 'core_cm4.h'
#include 'delay.h'
#include 'ili9341.h'
#include '00.h'
#include '01.h'
int main()
{
ILI9341_Init();
ILI9341_SetColumnAddr(10,129); //列地址设置
ILI9341_SetPageAddr(10,169); //页地址设置
ILI9341_WriteMemory((u16 *)gImage_00,120*160);
ILI9341_SetColumnAddr(142,216); //列地址设置
ILI9341_SetPageAddr(190,289); //页地址设置
ILI9341_WriteMemory((u16 *)gImage_01,75*100);
while(1);
}
屏幕显示如下
设置了行列地址,就能在屏幕上任意位置进行操作了。不同区域显示多张照片时,要重新设置行列地址,否则默认在之前的区域内进行操作。ILI9341初始化时默认操作范围为全屏。如果初始化完成后想对全屏进行操作,就不需要设置行列地址。
- 意法半导体中国本地造STM32微控制器启动规模量产
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 基于机智云与STM32的智能拐杖安全监测系统在养老物联网中的应用
- 内置全栈安全,一站式满足CRA法案与IEC 62443标准——米尔STM32MP257核心板
- 如何用 STM32 FLASH 实现等效 100 万次擦写的 EEPROM 功能?
- 实战解析:通过一个小项目掌握STM32所有外设
- STM32学了两年半,却还是不会做项目
- 意法半导体推出最新STM32MP21微处理器,兼具高性价比、低功耗、高灵活性
- 基于STM32的矿井作业环境监测系统设计与实现
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析








