网站首页 > 精选文章 正文
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()
此时正常编译,正常烧录
猜你喜欢
- 2025-04-24 利用C语言读取BMP文件
- 2025-04-24 用ESP32做了一个计算器,还是摸鱼神器
- 2025-04-24 Linux系列:如何调试 malloc 的底层源码
- 2025-04-24 更详细的,有代码,你们看看
- 2025-04-24 Suricata引擎二次开发之命中规则定位
- 2025-04-24 基于ESP32的LED音乐频谱灯
- 2025-04-24 Windows上也能用Swift编程了,官方编译安装包已上线
- 2025-04-24 ESP32物联网开发板制作教程
- 2025-04-24 一点多余的功能都没有!用ESP32做了个桌面摆件,满足了3大刚需
- 2025-04-24 Windows下VSCode配置C++环境
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)