LVGL基础教程 – LVGL 简介

LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。

LVGL主要特性

  1. 功能强大的构建块,例如按钮,图表,列表,滑块,图像等。
  2. 带有动画,抗锯齿,不透明,平滑滚动的高级图形
  3. 各种输入设备,例如触摸板,鼠标,键盘,编码器等
  4. 支持UTF-8编码的多语言
  5. 多显示器支持,如TFT,单色显示器
  6. 完全可定制的图形元素
  7. 独立于任何微控制器或显示器使用的硬件
  8. 可扩展以使用很少的内存(64 kB闪存,16 kB RAM)进行操作
  9. 操作系统,支持外部存储器和GPU,但不是必需的
  10. 单帧缓冲区操作,即使具有高级图形效果
  11. 用C语言编写,以实现最大的兼容性(与C ++兼容)
  12. 模拟器可在没有嵌入式硬件的PC上进行嵌入式GUI设计
  13. 可移植到MicroPython
  14. 可快速上手的教程、示例、主题
  15. 丰富的文档教程
  16. 在MIT许可下免费和开源

 

LVGL硬件要求

基本上,每个现代控制器(肯定必须要能够驱动显示器)都适合运行LVGL。LVGL的最低运行要求很低:

  • 16、32或64位微控制器或处理器
  • 最低 16 MHz 时钟频率
  • Flash/ROM::对于非常重要的组件要求 >64 kB(建议 > 180 kB)
  • RAM
    • 静态 RAM 使用量:~2 kB,取决于所使用的功能和对象类型
    • 堆栈: > 2kB(建议 > 8 kB)
    • 动态数据(堆):> 2 KB(如果使用多个对象,则建议 > 16 kB)。由 lv_conf.h 中的 LV_MEM_SIZE 宏进行设置。
    • 显示缓冲区:> “水平分辨率”像素(建议 > 10× “水平分辨率” )
    • MCU 或外部显示控制器中的一帧缓冲区
  • C99或更高版本的编译器
  • 具备基本的C(或C ++)知识:指针,结构,回调…
请注意,内存使用情况可能会因具体的体系结构、编译器和构建选项而异。

LVGL源码布局

  • ./lvgl 库本身
  • ./lv_drivers 显示和输入设备驱动程序
  • ./lv_examples 示例和演示
  • lvgl官方文档网站(https://docs.lvgl.io)
  • lvgl官方博客博客站点(https://blog.lvgl.io)
  • sim在线模拟器网站(https://sim.lvgl.io)
  • lv_sim _… 适用于各种 IDE 和平台的模拟器项目
  • lv_port _… 移植到其他开发板
  • lv_binding _… 绑定到其他语言
  • lv _…移植到其他平台
其中,lvgl,lv_examples和lv_drivers是最受维护、关注的核心存储库。

LVGL更新发行规则

  • lvgl核心存储库遵循语义版本控制规则:
    • 不兼容的API的主要版本更改。例如。 v5.0.0,v6.0.0
    • 次要版本,用于新的但向后兼容的功能。例如。 v6.1.0,v6.2.0
    • 修补程序版本,用于向后兼容的错误修复。例如。 v6.1.1,v6.1.2

LVGL仓库分支说明

核心存储库至少具有以下分支:

  • master 分支,最新版本,补丁直接在这里合并。
  • dev 分支,开发人员在此处合并新功能,直到将它们合并到 master 分支为止。
  • release/vX 分支,主要版本的稳定版本

LVGL发布周期

LVGL有2周的发布周期。在每月的第一个和第三个 星期二 :

  1. (基于新功能)从 master 分支创建 主要、次要或错误修复 的版本
  2. 将 master 分支合并到 release/vX 中
  3. 发布后立即将 dev 分支合并到 master 分支
  4. 在接下来的2周内,测试 master 分支的新功能
  5. 错误修复直接合并到 master 中
  6. 2周后,再从第一步重新开始迭代

LVGL版本标签

每个版本都会创建 vx.Y.Z 之类的标签,如: v7.9.0 。

LVGL变更日志

版本更改记录在 ./lvgl/CHANGELOG.md 中。

LVGL版本兼容

在核心存储库中,每个主要版本都有一个分支(例如 release/v6 )。该主要版本的所有次要版本和修补程序版本都在此处合并

这样就可以添加稳定的较旧版本,而无需打扰较新的版本

所有主要版本的官方支持周期为1年。

### 使用 ESP-IDF 和 LVGL教程与示例项目 对于希望在 ESP32 上使用 LVGL 图形库的开发者来说,找到合适的资源和教程至关重要。当前存在多个途径可以获取这些资料。 #### 资源概述 官方文档提供了详尽的信息关于如何配置环境以及编写应用程序[^1]。除了官方指南外,在线社区和技术博客也是宝贵的知识来源。例如,《最简单快速的ESP-IDF使用LVGL教程》提供了一个简化版的操作流程介绍,涵盖了从创建新工程项目到最终部署的一系列操作[^2]。 #### 示例项目下载 为了帮助初学者更快地上手实践,一些开源平台上有现成的例子可供参考: - **GitHub**: 许多贡献者分享了自己的作品,其中包括针对不同显示模块(如ST7789)优化过的 `lv_demo_music` 应用程序实例。 - **Espressif 官方仓库**: 提供了经过验证的基础框架和支持文件,确保兼容性和稳定性的同时也为自定义开发打下了良好基础[^3]。 #### 开发工具链搭建建议 考虑到 Windows 用户群体的需求,《ESP-IDF+VSCODE环境适配安装教程–基于win10开发环境》给出了详细的步骤指导,不仅限于软件的选择还涉及到了具体版本号的选择以匹配特定硬件需求[^4]。 ```bash git clone https://github.com/lvgl/lv_examples.git cd lv_examples idf.py menuconfig # 配置目标板和其他选项 idf.py build flash monitor # 编译并上传代码至设备 ``` 上述命令展示了如何克隆包含各种演示案例在内的 Git 仓库,并通过 ESP-IDF 工具链对其进行编译、烧录直至运行监控的过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值