:link_to_translation:en:[English]
LVGL 是一个 C 语言编写的免费的开源图形库,提供了用于嵌入式 GUI 的各种元素。用户可以利用丰富的图形库资源,在消耗极低内存的情况下构建视觉效果丰富多彩的 GUI 。
LVGL 具有以下特性:
- 超过 30 多种丰富的用户自定义控件,如按钮,滑条,文本框,键盘等
- 支持各种分辨率的屏幕,适配性好
- 接口简单,内存占用少
- 支持多个输入设备
- 提供抗锯齿,多边形,阴影等多种绘图元素
- 采用 UTF-8 编码,支持多语言,多字体的文本
- 支持各种图片类型,可从 Flash 和 SD 卡中读取图片显示
- 提供在线图片取模工具
- 支持 Micropython
运行 LVGL 的最低配置要求如下:
- 16、32、64 位的微控制器或处理器
- 时钟频率:大于 16 MHz
- Flash/ROM:大于 64 kB(推荐 180 kB)
- RAM:8 kB(推荐 24 kB)
- 需要一个帧缓存区
- 显示缓存:至少大于水平分辨率的像素
- C99 或更高版本的编译器
Note
以下示例不再维护,LCD 以及 LVGL 示例请参考: i80_controller、 rgb_panel 和 spi_lcd_touch
LVGL 官方提供了 ESP32 上使用 LVGL 的 LVGL ESP32 示例程序。
除此之外,在 ESP-IoT-Solution 中也提供了一些应用 LVGL 的实例:
使用 LVGL 设计了一个恒温计控制的界面:
相应例程在 hmi/lvgl_thermostat
使用 LVGL 绘制了一个咖啡机的交互界面:
相应例程在 hmi/lvgl_coffee
ESP32 连接 Wi-Fi,利用 LVGL 绘制的 Wi-Fi 连接界面,可以显示附近 Wi-Fi 信息,在屏幕上输入密码等。
相应例程在 hmi/lvgl_wificonfig