简介
LVGL是一个轻量级的嵌入式图形库
打开LVGL的官网,我们可以看到这样一句话:Light and Versatile Graphics Library(轻便且多功能的图形库)
轻便性
轻便主要体现在只需要很少的硬件资源就可以运行:
按照官网的对硬件资源的要求:
- 支持16、32和64bit的Microcontroller or processor
- >16MHz的主时钟频率
- >64KB的Flash/ROM空间(推荐180KB以上)
- >8KB的RAM(推荐24KB以上)
- 1帧的缓存空间,可以是MCU内部,外挂RAM或者显示驱动芯片
- 图形缓存只要求最低有一行的显存大小(一行的水平分辨率大小的显存)(推荐是1/10的显存大小)
- 最少需要C99以上的编译器
- 基于C语言(少量基于C++),指针、结构体、回调。
多功能
多功能主要体现在几个地方:
widget(部件)
支持30多个部件,如按键、下拉列表、图标等,非常丰富。
显示
- 支持任意分辨率的屏幕,从单色的显示到,到全彩的显示器,都可以支持。
- 支持GPU加速
- 支持多个显示器显示
- 自定义颜色格式
- 有非常灵活的缓存模式
输入设备
- 支持一个屏幕多个输入设备
- 输入接口非常简单
- 支持拖动、滚动
- 支持手势识别
- 支持键盘、解码器等非触摸设备
画图
文本特征
- 支持UTF-8
- 在线和离线的字体转换器,我们可以根据LVGL官方提供的字体转换器生成我们想要的字体
图像特征
- 支持图像旋转
- 支持RGB、ARGB
- 支持实时着色
- 图片可以保存在flash或者文件中
- 图片也支持在线、离线转换器
样式
支持MicroPython
- 除了使用C语言还可以使用MicroPython来开发LVGL
- 支持在线模拟器
- 支持ESP32开发
开源协议
LVGL是遵循MIT的开源协议,这个协议非常灵活
- 完全开源
- 基于C语言编写的
- 托管在GitHub
- 在MIT开源协议的约束下,自由使用。
开发参考手册
LVGL官网为我们提供了非常详细的开发手册:https://docs.lvgl.io
国内可以访问百问网的LVGL中文站点:http://lvgl.100ask.net