“本文大部分内容来自LVGL官方文档,手翻版,如有错误欢迎指正。”
系列文章目录
一、LVGL系列(一) 一文了解LVGL的学习路线 轻松了解LVGL的全部
二、LVGL系列(二)之一 LVGL必读介绍 为什么要学习LVGL
LVGL系列(二)之二 LVGL常见问题解答 整理自官方文档
二、LVGL系列(三)LVGL仿真环境的搭建(WIN下)
2.1 VS下搭建LVGL仿真环境
2.1 如何在仿真环境下运行自己的代码
三、LVGL系列(三) LVGL移植教程
四、LVGL系列(四)概述
4.1 对象 LVGL核心概念
五、LVGL系列(五)部件
六、LVGL系列(六)布局
前言
LVGL(Light and Versatile Graphics Library)是一个免费的开源图形库,为您提供创建具有易于使用的图形元素、漂亮的视觉效果和低内存占用的嵌入式 GUI 所需要的一切。
“这是来自官网的一句话,我觉的说的很好在此贴出来。也是我们学习LVGL的原因。”
一、LVGL·的主要特征?
- 强大的构建块,例如: buttons(按钮)、 charts(图表)、 lists(列表)、 sliders(滑块)、images(图像)等.
- 高级图形与动画, anti-aliasing(抗锯齿), 不透明度, 平滑滚动
- 各种输入设备,如触摸板,鼠标,键盘,编码器等.
- 使用UTF-8编码的多语言支持
- 多显示器支持,即使用多个TFT,同时使用单色显示器
- 具有像CSS样式的完全可定制的图形元素
- 硬件独立:可以在任何微控制器或显示器上使用
- 可扩展性:能够使用很少的内存进行操作(64 kB闪存,16 kB RAM)
- OS,外部内存和GPU支持但不必要
- 单帧缓冲区操作即使具有高级图形效果
- 用C写入C以获得最大兼容性(C ++兼容)
- 即便没用硬件也可以在PC上进行仿真设计
- Binding to MicroPython(可以使用MicroPython)
- 教程,示例,快速GUI设计的主题
- 文档可在线获取和PDF
- 免费开源(MIT license)
二、硬件要求
基本上,每个现代控制器(能够驱动显示器)适合运行LVGL。最小的要求是:
- 16、32 或 64 位微控制器或处理器
- 建议使用 16 MHz 时钟速度
- 闪存/ROM:> 64 kB 用于非常重要的组件 (建议使用 >180 kB)
- RAM:
- 静态 RAM 使用量:~2 kB,取决于使用的功能和对象类型
- 堆: > 2kB (> 建议使用 8 kB)
- 动态数据(堆): > 2 KB (> 如果使用多个对象,建议使用 16 kB). 在lv_conf.h文件中配置LV_MEM_SIZE 生效。
- 显示缓冲区:>“水平分辨率”像素(推荐> 10 ×10ד水平分辨率”)
- MCU 或外部显示控制器中的一个帧缓冲器
- C99 或更新的编译器
- 具备基本的 C(或 C++)知识: pointers, structs, callbacks
三、许可证
- LVGL项目(包括所有存储库)在MIT许可证下许可。这意味着您即使在商业项目中也可以使用它。
- 我们非常期待您能在社区论坛中写一些关于您项目文章或者使用邮箱发送到lvgl.io,这不是强制性的.
- 你可以免费使用LVGL,但是不得不说这背后有着庞大的工作量。这些工作都是由志愿者在空闲时间完成的。
- 为使LVGL项目可持续,请您考虑为该项目提供贡献。您可以选择许多不同的贡献方式,例如简单地写一条关于您正在使用LVGL的推文,修复错误,翻译文档,甚至成为维护者。
四、仓库布局
LVGL项目的所有存储库都在Github上托管:https://github.com/lvgl
你会在那里找到这些存储库:
- lvgl 库本身以及很多例子。.
- lv_demos 由LVGL 创建的一些Demo。
- lv_drivers 显示和输入设备驱动程序
- blog 博客的资源 (https://blog.lvgl.io)
- sim 在线仿真资源(https://sim.lvgl.io)
- lv_sim_... 各种IDE平台的仿真项目
- lv_port_... lvgl对开发板的接口文件
- lv_binding_.. 与其他语言的绑定
- lv_... 与其他平台的接口
五、最后
在官方文档中接下来的部分就是介绍版本信息的了,我觉的对初学者没有用,所以在此就不写出来了。如果感兴趣可以查阅官方文档。
给点个赞点个关注呗!!!持续更新
整个系列还在整理中,有些地方还没完成。如有意见建议,欢迎在评论区提出。