stm32lvgl显示图片
时间: 2025-04-19 17:47:42 浏览: 33
### 实现 STM32 上使用 LVGL 库显示图片
为了在 STM32 上成功利用 LVGL 显示图像,需先完成基础设置工作。确保 `LVGL` 文件夹已集成至项目环境中[^1]。
#### 配置 LVGL 图像支持功能
使能图像解码器对于加载位图至关重要。这通常涉及修改配置头文件中的宏定义来激活特定格式的支持(比如BMP, PNG)。例如,在 lv_conf.h 中开启如下选项:
```c
#define LV_USE_IMAGE true
#define LV_USE_IMAGE_CACHE 8 /*Number of images to cache (NULL = disabled)*/
```
#### 准备并导入目标图像资源
准备要展示的图形素材,并将其转换成适合嵌入式系统的格式。一种常见做法是通过工具链将图像编译为 C 数组形式,再链接到应用程序中;另一种则是借助外部存储介质读取二进制数据流。
假设采用前者方式,则可运用在线服务或专用软件把 BMP/PNG 转化为 .h/.c 文件对儿。之后把这些自动生成的数据结构加入源代码树下适当位置以便后续引用。
#### 编写用于呈现图像对象的应用逻辑
创建一个新的页面或者容器作为承载视图的一部分,接着实例化一个 image 类型的小部件关联之前处理过的静态资料路径名字符串表示法或者是直接传入指向像素数组的指针变量。
下面给出一段简单的演示片段说明如何操作上述过程:
```c
#include "lvgl/lvgl.h"
// 假设 img_data 是已经预处理好的图像数据
extern const uint8_t my_image[];
void create_image_on_screen(void){
static lv_obj_t * screen;
screen = lv_scr_act(); // 获取当前屏幕
lv_obj_t *img = lv_img_create(screen); // 创建image对象
lv_img_set_src(img, &my_image); // 设置图像源
}
```
此段程序展示了怎样在一个活动屏幕上构建新的子组件——即基于先前声明的全局作用域内的只读内存区域所保存的具体图案信息建立起来的一个可视化的 picture widget[^2]。
阅读全文
相关推荐


















