💻 计划学习一下LVGL,所以记录一下学习过程。
LVGL官网
其代码都是放在 Github 上的
GitHub - lvgl/lvgl: Powerful and easy-to-use embedded GUI library with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).https://github.com/lvgl/lvgl要善于利用 Gitee 的“Github加速”功能!
Gitee 又要审核代码,好麻烦。不如仅仅当个 Github 的加速器用。
Github 仓库
居然README还有中文!!对我这英语小白也太好了!
这有英文有啥用啊!官方文档又没有中文,还是好难啊!!!
LVGL的条件简单介绍
要求 | 最低要求 | 建议要求 |
---|---|---|
架构 | 16、32、64位微控制器或微处理器 | |
时钟 | > 16 MHz | > 48 MHz |
Flash/ROM | > 64 kB | > 180 kB |
Static RAM | > 16 kB | > 48 kB |
Draw buffer | > 1 × hor. res. pixels | > 1/10屏幕大小 |
编译器 | C99或更新 |
这样看,我想用STM32C6T6的想法就泡汤了啊!!!!好难啊
想想用ESP32学LVGL吧!STM32ZET6是不是也行??
看看情况吧,淘一个开发板!
LVGL本身并不依赖特定的硬件平台,任何满足LVGL硬件配置要求的微控制器均可运行。
特性:
- 丰富且强大的模块化图形组件:按钮 (buttons)、图表 (charts)、列表 (lists)、滑动条 (sliders)、图片 (images) 等
- 高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果
- 支持多种输入设备:触摸屏、 键盘、编码器、按键等
- 支持多显示设备
- 不依赖特定的硬件平台,可以在任何显示屏上运行
- 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM)
- 基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
- 可以通过类CSS的方式来设计、布局图形界面(例如:Flexbox、Grid)
- 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、SWM341 DMA2D、NXP PXP和VGLite)
- 即便仅有单缓冲区(frame buffer)的情况下,也可保证渲染如丝般顺滑
- 全部由C编写完成,并支持C++调用
- 支持Micropython编程,参见:LVGL API in Micropython
- 支持模拟器仿真,可以无硬件依托进行开发
- 丰富详实的例程
- 详尽的文档以及API参考手册,可线上查阅或可下载为PDF格式
如何入门:
- 使用网页在线例程来体验LVGL(3分钟)
- 阅读文档简介章节来初步了解LVGL(5分钟)
- 再来阅读一下文档快速快速概览章节来了解LVGL的基本知识(15分钟)
- 学习如何使用模拟器来在电脑上仿真LVGL(10分钟)
- 试着动手实践一些例程
- 参考移植指南尝试将LVGL移植到一块开发板上,LVGL也已经提供了一些移植好的工程
- 仔细阅读文档总览章节来更加深入的了解和熟悉LVGL(2-3小时)
- 浏览文档组件(Widgets)章节来了解如何使用它们
- 如果你有问题可以到LVGL论坛提问
- 阅读文档如何向社区贡献章节来看看你能帮LVGL社区做些什么,以促进LVGL软件质量的不断提高(15分钟)
📖 这么简单吗???这不是一会就能看明白???我不信!不可能!
LVGL模拟器
LVGL还有模拟器,这就不用先考虑开发板了嘛!!!
优点:
- 独立于硬件 - 编写代码,在 PC 上运行并在 PC 显示器上查看结果。
- 跨平台 - 任何 Windows、Linux 或 OSX PC 都可以运行 PC 模拟器。
- 可移植性 - 编写的代码是可移植的,这意味着您可以在使用嵌入式硬件时简单地复制它。
- 轻松验证 - 模拟器对于报告错误也非常有用,因为它意味着每个用户的通用平台。 因此,在模拟器中重现错误并使用 论坛 。
关于安装方面就看LVGL的文档吧
STM32
官方文档给我弄蒙了?
这不是啥都没有嘛。。。。我咋整??
ESP32
反正ESP32用Arduino好用,就看Arduino就行了吧。
由于 v7.7.1 LVGL 包含 Kconfig 文件,因此 LVGL 可以用作 ESP-IDF v4 组件。
Arduino
The core LVGL library and the examples are directly available as Arduino libraries.
LVGL核心库和示例可直接用于Arduino库。
要注意版本问题,不同版本还是有差异的!!
其实的话,不同平台的内核都一样吧,从这个平台显示好移植到另一个平台应该不难吧!
1️⃣LVGL官方文档:LVGL官方文档
https://docs.lvgl.io/latest/en/html/index.html
2️⃣正点原子的LVGL教程:正点原子LVGL教程
http://www.openedv.com/docs/book-videos/zdyzshipin/4free/littleVGL.html
3️⃣荔枝派Nano的LVGL教程:荔枝派Nano的LVGL教程
http://nano.lichee.pro/application/littlevgl.html
4️⃣野牛开发板的 lvgl 6.0 例程:野牛开发板的 lvgl 6.0 例程
https://gitee.com/mzy2364/LittlevGL_Demo
5️⃣LVGL官方例程:LVGL官方例程
https://github.com/lvgl/lv_demos
💪 好了,这算是初识LVGL啦 ~
后续更新 ~