1、LVGL初探:什么是LVGL、LVGL的历史与优势、LVGL在嵌入式领域的地位、如何获取LVGL源码

1.1 什么是LVGL?

LVGL,全称是Light and Versatile Graphics Library。翻译过来就是「轻量且通用的图形库」。说白了,它就是一套专门给嵌入式设备用的UI框架。

我刚开始接触嵌入式GUI时,最头疼的就是显示问题。用裸机画点、画线,做个按钮要写几百行代码。后来遇到LVGL,才发现原来嵌入式也能做出手机App那样的界面。

LVGL的核心特点:

  • 轻量级——最低只需要64KB Flash和16KB RAM就能跑起来
  • 组件丰富——按钮、滑块、图表、键盘等30+控件开箱即用
  • 硬件无关——只要你有显示器和输入设备,就能用
  • 开源免费——MIT协议,商用也没问题

一句话总结:LVGL就是嵌入式界的Qt,但比Qt轻得多。

1.2 LVGL的历史与优势

LVGL最初叫LittlevGL,是匈牙利工程师Gábor Kiss在2016年发起的项目。我记得当时它还是个很简陋的库,连中文显示都不支持。但到了2019年,LVGL 7.0版本发布,加入了样式系统,这才真正火起来。

为什么会发展这么快?

你想想看,嵌入式设备越来越智能,带屏幕的产品越来越多。智能手表、家电面板、工控设备……哪个不需要好看的界面?但传统的嵌入式GUI方案,要么太贵(商业授权),要么太难用(裸机开发)。LVGL正好填补了这个空白。

LVGL相比其他方案的优势:

对比项 LVGL emWin TouchGFX 裸机开发
授权费用 免费(MIT) 商业收费 部分免费
内存需求 低(16KB RAM起) 极低
控件数量 30+ 20+ 20+ 需自己实现
学习曲线 平缓 中等 陡峭 陡峭
社区活跃度 高(GitHub 15k+ Star)

我的经验:如果你做的是小批量产品,LVGL绝对是首选。我曾经给一个客户做智能家居面板,用LVGL从零到出样只用了两周。要是用商业方案,光谈授权就得一个月。

1.3 LVGL在嵌入式领域的地位

现在LVGL在嵌入式GUI领域是什么地位?

这么说吧,如果你去逛GitHub,搜索「embedded GUI」,LVGL的Star数排第一。在STM32、ESP32这些主流平台上,LVGL几乎成了标配。

我参加过几次嵌入式展会,发现一个现象:10个带屏幕的嵌入式方案里,至少有6个在用LVGL。为什么?

  • 生态完善——有官方的SquareLine Studio拖拽工具,不会写代码也能做UI
  • 跨平台——STM32、ESP32、Linux、Windows模拟器都能跑
  • 持续更新——每年一个大版本,bug修复很及时
  • 中文支持好——内置中文字库,不用自己折腾编码

注意:LVGL虽然强大,但不是万能的。如果你的MCU只有4KB RAM,那还是老老实实用裸机画点吧。LVGL最低要求16KB RAM,建议64KB以上才用得舒服。

1.4 如何获取LVGL源码

获取LVGL源码很简单,我一般用两种方式:

方式一:从GitHub直接下载

打开浏览器,访问:

https://github.com/lvgl/lvgl

点击绿色的「Code」按钮,选择「Download ZIP」。解压后就能看到源码了。

方式二:使用Git克隆

如果你像我一样习惯用命令行:

git clone https://github.com/lvgl/lvgl.git
cd lvgl
git checkout v8.3.0  # 切换到稳定版本

我的建议:不要直接用master分支,那个是开发版,可能有bug。我一般用release版本,比如v8.3.0或v9.0.0。你可以在GitHub的「Releases」页面找到所有正式版本。

源码目录结构

下载后你会看到这样的结构:

lvgl/
├── src/          # 核心源码
│   ├── core/     # 核心对象和事件
│   ├── draw/     # 绘图引擎
│   ├── widgets/  # 控件库
│   └── misc/     # 工具函数
├── examples/     # 示例代码
├── docs/         # 文档
└── lv_conf_template.h  # 配置文件模板

嗯,这里要注意:lv_conf_template.h这个文件很重要。你需要把它复制到项目里,重命名为lv_conf.h,然后根据你的硬件配置修改参数。比如屏幕分辨率、颜色深度、内存大小等。

避坑指南:我曾经忘记配置LV_COLOR_DEPTH,结果屏幕颜色全乱套了。后来排查了半天才发现是颜色深度没设对。所以拿到源码后,第一件事就是检查配置文件。

1.5 本章小结

这一章我们聊了:

  • LVGL是什么——轻量级嵌入式GUI框架
  • 它的历史——从2016年的小项目到现在的行业标杆
  • 它的优势——免费、轻量、控件丰富
  • 它在嵌入式领域的地位——主流选择,生态完善
  • 如何获取源码——GitHub下载或Git克隆

下一章,我们会真正动手搭建开发环境,让LVGL在你的板子上跑起来。到时候你会发现,原来嵌入式UI开发可以这么简单。