在基于 LVGL 开发嵌入式 GUI 项目时,工程文件的结构往往是新手入门的第一个“拦路虎”。本文将对典型 LVGL 工程中的核心目录与文件进行拆解,帮你快速理清各模块的功能边界,高效开展界面开发工作。
GUI guider工程结构示例

一、Custom 目录:开发者的“自留地”
该目录用于存放用户自定义的业务逻辑代码,是开发者扩展功能的核心区域(代码不会被 GUI 工具自动覆盖)。
| 文件 | 功能说明 |
|---|---|
custom.c / custom.h | 存放自定义业务逻辑,如按钮点击后的业务处理、自定义样式函数、特殊数据的计算逻辑等。 |
lv_conf_ext.h | 补充/修改 LVGL 核心配置(lv_conf.h),例如启用特定模块、调整内存池大小、扩展字体支持等。 |
二、Generated 目录:GUI 工具的“自动化产出”
该目录由 LVGL GUI 设计工具(如 SquareLine Studio)自动生成,负责界面的可视化实现与基础事件绑定。
| 文件 | 功能说明 |
|---|---|
events_init.c / events_init.h | 自动初始化界面事件回调,为按钮、滑块等控件绑定默认的交互逻辑(如点击、数值变化事件)。 |
gui_guider.c / gui_guider.h | LVGL 界面框架的核心文件,提供页面管理、资源加载、控件对象初始化的统一接口。 |
setup_scr_screen.c | 具体屏幕(如名为“screen”的界面)的控件实现文件,包含按钮、图片、标签的创建、样式与布局配置。 |
widgets_init.c / widgets_init.h | 基础控件组的初始化逻辑,可用于统一配置控件样式或注册自定义控件(部分场景下可暂不深入)。 |
三、LVGL Simulator 目录:图形库的“底层支撑”
该目录是 LVGL 图形库的配置与驱动层,负责图形库与硬件(或模拟器)的适配。
| 文件 | 功能说明 |
|---|---|
decoder.h | 定义图像解码器接口,支持 LVGL 解析 PNG、BMP 等格式的图片资源。 |
lv_conf.h | LVGL 核心配置文件,控制图形库功能开关(如动画、字体压缩)、显示分辨率、内存池大小等。 |
lv_drv_conf.h | 驱动层配置文件,定义显示驱动、输入设备驱动(触摸、鼠标)的接口,是 LVGL 与硬件的“桥梁”。 |
lv_ex_conf.h | 配置 LVGL 扩展组件(如图表、滑块)的启用状态,按需开启可减少资源占用。 |
四、Project 目录:工程的“配置中枢”
该目录存储工程的元信息与可视化设计数据。
| 文件 | 功能说明 |
|---|---|
project.json | 工程配置文件,记录项目基本信息、依赖、编译选项等,用于 IDE 或 GUI 工具识别工程结构。 |
ui.json | 界面可视化设计的元数据文件,存储控件位置、样式、事件绑定等信息,是 GUI 工具生成代码的依据。 |
通过对以上目录和文件的梳理,你可以清晰地把握 LVGL 工程的“自动化 + 自定义”协作模式:Generated 目录负责界面的可视化落地,Custom 目录承载业务逻辑的扩展,LVGL Simulator 保障图形库的底层适配。这种结构既发挥了工具的自动化效率,又保留了开发者的自定义空间,非常适合嵌入式 GUI 项目的迭代开发。
13万+

被折叠的 条评论
为什么被折叠?



