================================== 什么是Lvgl? ================================== .. figure:: http://photos.100ask.net/lvgl/01_intro/01_logo_lvgl.png LVGL(轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。 获取离线教程文档 ################################## - `认准百问网lvgl官方在线站点`_ - `点我下载百问网lvgl系列教程配套资料`_ - `点我下载百问网lvgl系列教程pdf格式文档`_ - `点我下载百问网lvgl系列教程html格式文档`_ - `点我下载百问网lvgl系列教程epub格式文档`_ .. _认准百问网lvgl官方在线站点: http://lvgl.100ask.net/ .. _点我下载百问网lvgl系列教程配套资料: http://download.100ask.org/gui/lvgl/100ask_lvgl.html .. _点我下载百问网lvgl系列教程pdf格式文档: https://100ask-lvgl-doc.readthedocs.io/_/downloads/zh/latest/pdf/ .. _点我下载百问网lvgl系列教程html格式文档: https://100ask-lvgl-doc.readthedocs.io/_/downloads/zh/latest/htmlzip/ .. _点我下载百问网lvgl系列教程epub格式文档: https://100ask-lvgl-doc.readthedocs.io/_/downloads/zh/latest/epub/ 主要特性 ################################## 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的最低运行要求很低: - 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** 库本身 - **./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是最受维护、关注的核心存储库。 .. figure:: http://photos.100ask.net/lvgl/01_intro/02_lvgl_repository_layout.png 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有2周的发布周期。在每月的第一个和第三个 **星期二** : 1. (基于新功能)从 ``master`` 分支创建 主要、次要或错误修复 的版本 #. 将 ``master`` 分支合并到 ``release/vX`` 中 #. 发布后立即将 ``dev`` 分支合并到 ``master`` 分支 #. 在接下来的2周内,测试 ``master`` 分支的新功能 #. 错误修复直接合并到 ``master`` 中 #. 2周后,再从第一步重新开始迭代 版本标签 ################################## 每个版本都会创建 vx.Y.Z 之类的标签,如: v7.9.0 。 变更日志 ################################## 版本更改记录在 ./lvgl/CHANGELOG.md 中。 版本兼容 ################################## 在核心存储库中,每个主要版本都有一个分支(例如 release/v6 )。该主要版本的所有次要版本和修补程序版本都在此处合并 这样就可以添加稳定的较旧版本,而无需打扰较新的版本 所有主要版本的官方支持周期为1年。