LVGL简介
LVGL( Light and Versatile Graphics Library )是一个轻量、多功能的开源图形库。
1、丰富且强大的模块化图形组件:按钮 、图表 、列表、滑动条、图片等
2、高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果
3、支持多种输入设备:触摸屏、 键盘、编码器、按键等
4、不依赖特定的硬件平台
5、配置可裁剪,最低资源占用:64 kB Flash,16 kB RAM
6、基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
7、可以通过类CSS的方式来设计、布局图形界面(例如:Flexbox、Grid)
8、支持操作系统、外置内存、以及硬件加速(已内建支持STM32 DMA2D)
9、即便仅有单缓冲区(frame buffer)的情况下,也可保证渲染如丝般顺滑
10、支持模拟器仿真,可以无硬件依托进行开发......
LVGL移植要求
(注意:此要求仅针对V8版本的LVGL)
1、MCU
1、16、32 或 64 位微控制器或处理器
2、主控频率:>16Mhz
3、Flash/ROM:> 64kb,建议180kb以上
4、RAM:>8kb,建议24kb以上
5、图形缓冲区:>水平分辨率像素,建议大于1/10屏幕总像素
6、C99或更新的版本的编译器
我这里讲解使用的是STM32F407ZGT6,读者可以使用和我不一样,比如ESP32、其他系列的STM32单片机......,只要主控和编译器以及屏幕驱动满足要求,都是可以移植LVGL的。
2、显示屏
① 具有 8/16 /24/ 32 位色深的显示屏。② HDMI 端口的显示器。③ 小型单色显示器。④ LED 矩阵。⑤ 其他可以控制像素颜色 / 状态的显示器。
LVGL 源码下载
LVGL 相关的源码和工程都是存放在 GitHub 远程仓库中,该 GitHub 远程仓库地址为https://github.com/lvgl/lvgl/ ,用户可以该仓库中下载 LVGL 图形库的源码。
1、选择版本
2、下载
3、下载后,解压缩得到文件夹:lvgl-release-v8.3
LVGL 源码介绍
上表中,与 LVGL 移植相关的有 examples文件夹、src 文件夹、lv_conf_template.h 和 lvgl.h 文件,其他的部分均与移植无关,用户可以选择忽略。接下来我们分别看一下 examples、src 这两个文件夹的文件结构:
1. examples 文件夹
该文件夹主要包含 LVGL 部件实例、动画实例、其他第三方库实例以及输入设备和显示器驱动文件等内容,具体如表 1.3.2 所示:
上表中,只有 porting 文件夹与移植相关,其他文件夹中存放的是各种实例。
2. src 文件夹
该文件夹主要包含 LVGL 源文件(部件源码、多种解码库)
总结
本篇主要介绍了LVGL大概功能以及资料获取方式和源码文件的大概介绍,读者开始只需要有个大概的了解,在不断的学习之后,读者自然而然的就明白LVGL内部的实现流程和掌握LVGL的使用方式。