企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

ESP32在vscode platformio平台使用LGVL例程

wudianyun 2025-04-24 09:23:39 精选文章 15 ℃

LVGL(Light and Versatile Graphics Library)是一个免费的开源图形库,提供创建具有易于使用的图形元素、漂亮的视觉效果和低内存占用的嵌入式 GUI 所需的一切。

o 具有非常丰富的内置控件,像 buttons, charts, lists, sliders, images 等

o 高级图形效果:动画,反锯齿,透明度,平滑滚动

o 支持多种输入设备,像 touchpad, mouse, keyboard, encoder 等

o 支持多语言的 UTF-8 编码

o 支持多个和多种显示设备,例如同步显示在多个彩色屏或单色屏上

o 完全自定制的图形元素

o 硬件独立于任何微控制器或显示器

o 可以缩小到最小内存 (64 kB Flash, 16 kB RAM)

o 支持操作系统、外部储存和 GPU(非必须)

o 仅仅单个帧缓冲设备就可以呈现高级视觉特效

o 使用 C 编写以获得最大兼容性(兼容 C++)

o 支持 PC 模拟器

o 为加速 GUI 设计,提供教程,案例和主题,支持响应式布局

o 提供了在线和离线文档

o 基于自由和开源的 MIT 协议

LVGL前移植准备

一块240*240TFT屏,芯片型号ST7789

一块esp32开发板

杜邦线

面包板

接线

请根据TFT模块实际接线,由于本实例TFT模块没有CS片选引脚,以及对TFT模块没有亮度需求,所以没有在代码中设置,建议TFT模块外接3.3V稳定电源,工作电压不应超过额定电压,否则可能存在烧坏的风险。

LVGL移植

下载安装vscode platformio最新版本(3.3.3)

创建文件(英文命名)

下载LVGL最新版本(9.2.2),以及下载TFT_eSPI库

打开LVGL源文件库


复制(lv_conf_template.h)路径pio\libdeps\esp32doit-devkit-v1\lvgl\src\lv_conf_template.h粘贴路径pio\libdeps\esp32doit-devkit-v1\lvgl\src\lv_conf.h重命名为(lv_conf.h),并打开文件修改

修改第15行,0改为1,启动源文件

修改第278行,0改为1,打开日志


修改第1027行,0改1,打开SPI

修改第1048行,0改1,根据自己TFT屏幕修改芯片型号

打开(LVGL_Arduino.ino)路径.pio\libdeps\esp32doit-devkit-v1\lvgl\examples\arduino\LVGL_Arduino\LVGL_Arduino.ino,复制里面全部的内容,

并覆盖到(main.cpp)路径src\main.cpp编译并下载到esp32,此时能正常烧录,正常显示

LVGL使用例程

若是取消129行注释,运行LGVL示例,编译报错,函数未定义,或者文件夹不包含文件该文件。原因是编译只链接.pio\libdeps\esp32doit-devkit-v1\lvgl\src,里面的文件,不包含以外的原文件库,会出现未定义错误,并停止编译,退出进程。

复制(lv_demos.h)路径pio\libdeps\esp32doit-devkit-v1\lvgl\demos\lv_demos.h

粘贴(lv_demos.h)路径.pio\libdeps\esp32doit-devkit-v1\lvgl\src\lv_demos.h

根据(lv_conf.h)路径pio\libdeps\esp32doit-devkit-v1\lvgl\src\lv_conf.h,修改第1084行,0改1,根据自己需求打开示例,可以全部打开,但不建议

复制例程代码文件夹(widgets)路径.pio\libdeps\esp32doit-devkit-v1\lvgl\demos\widgets


粘贴并重命名(widgetsdemo)路径.pio\libdeps\esp32doit-devkit-v1\lvgl\src\widgetsdemo

打开文件(lv_demos.h)路径.pio\libdeps\esp32doit-devkit-v1\lvgl\src\lv_demos.h,修改第35行的源文件#include "widgets/lv_demo_widgets.h"修改为#include "
widgetsdemo/lv_demo_widgets.h"、

也就是将widgets复制重命名之后的文件夹名称widgetsdemo

如果想测试更多可以从(demos)路径.pio\libdeps\esp32doit-devkit-v1\lvgl\demos并修改文件夹名称,注意修改文件名的同时也要修改(lv_demos.h),同时还要修改(lv_conf.h)

(main.cpp)路径src\main.cpp取消129行注释,或者根据需要添加相应的代码示例,本文以lv_demo_widgets()

此时正常编译,正常烧录

Tags:

最近发表
标签列表