|
一、图片取模工具(imag2lcd) 我们前面将汉字显示时说过,嵌入式LCD屏显示就是通过LCD屏幕数据接口给每个屏幕像素给出一个颜色值实现实时渲染显示出来。只不过文字显示时,给出的是一个二进制点阵,然后根据二进制中的“1”或“0”值匹配给出程序设置的前景色或背景色。那么涉及图片显示时,图片本身就是携带了颜色信息的,那么我们就可以直接将颜色信息通过LCD接口推送给屏幕。 图片取模工具(或叫图片转换工具,imag2lcd),如下图所示,可以将图片格式文件转换为图片点阵代码表,将每个像素的颜色数值给出为16进制数值表示的点阵。
二、 工程设计 【1】本文借用了本博客专栏前面汉字显示博文的基础源码包,在该基础上进行图片显示。 本文采用的STM32L496VGT3-ali开发板,其LCD屏幕支持240*240像素输出。
只是为了讲述图片在LCD显示实现过程,本人直接在网上下载了一张240*240的图片,并将该图片转换为bmp格式。 【2】由于是进行240*240图片刷新在整个屏幕,因此采用了SPI-DMA实现刷新屏幕像素,本专栏前面oled点亮博文中,就采用了直接刷新和DMA刷新两种方式设置屏幕背景实现点亮。现在先回顾一下DMA方式需要注意的细节。 1)开启DMA支持
2)开启中断支持,然后保存生成输出代码
3)增加对中断回调的处理
三、图片显示实现过程 先假设已经能点亮lcd屏幕了,现在开始实现图片在lcd屏幕输出显示过程。 【1】 打来安装好的image2lcd工具,载入需要显示的图片,如下图进行设置。
【2】完成设置,点击保存按钮,在弹出的对话框,输入想要保存的文件名,注意,如果没输入文件名后缀,将默认为(.c)输出,本文采用(.h)输出,如下图。
【3】输出图像编码表如下图所示。
【4】将输出的"pyimg.h"文件拷贝到工程的ICore/ oled目录下,并为了消除编译告警信息,将gImage_pyimg的数据类型调整为"uint8_t"。
【5】在oled.h文件添加一个“void BSP_LCD_img_DMA();”函数声明,在oled.c文件中包含拷贝过来的头文件“include "pyimg.h"”,并实现“void BSP_LCD_img_DMA()”函数。
四、编译及下载 【1】在main.c主函数中,加入按键1时调用“BSP_LCD_img_DMA”函数,实现图片在LCD屏幕显示。
【2】点击编译及点击运行按钮,加载程序到开发板上
【3】在开发板上点击按键1,观察显示效果
———————————————— 版权声明:py_free-物联智能 如有侵权请联系删除 |
在主机模式下使用STM32Cube HAL I2C驱动
【评论有奖】STM32CubeIDE 2.0版本要来了
F429I-DISC1体验报告(2) 按钮和弹窗GUI的简单交互设计丨国庆开发板测评活动
架构更新!STM32CubeIDE 2.0.0重磅发布,STM32CubeMX成独立工具(文末有奖)
在旧版本STM32CubeIDE内快速更新至STM32CubeIDE2.0
经验分享 | 基于STM32CubeIDE的指定存储话题
实战经验 | 使用STM32CubeIDE开发上位机工具
【教程】STM32CubeIDE for Visual Studio Code 安装
解锁STM32开发新体验,STM32CubeIDE for VS Code全解析(附实操视频)
速看!STM32CubeIDE for Visual Studio Code预发布版全面整合至正式版,完成重大升级
微信公众号
手机版