自学内容网 自学内容网

LVGL-从入门到熟练使用

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 是一款具有丰富部件,具备高级图形特性,支持多种输入设备和多国语
言,独立于硬件之外的开源图形库。 LVGL 官方地址为: https://lvgl.io/ ,该网页主要包含用户
文档、图片转换器和字体转换器,该网页打开后如图 所示:
上图中,点击“ GitHub ”图标即可进入 LVGL 源码的 github 仓库,在该仓库中,可以下载LVGL 相关的源码;点击“ Docs ”图标即可打开 LVGL 官方文档,该文档是纯英文编写的,主要讲解 LVGL 的基础知识、移植、部件使用、示例,等等。

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、显示屏

LVGL 只需要一个简单的驱动程序函数即可将像素阵列复制到显示器的给定区域中,其对显示屏的兼容性很强,具体要求如下(满足其一即可):
① 具有 8/16 /24/ 32 位色深的显示屏。
HDMI 端口的显示器。
③ 小型单色显示器。
LED 矩阵。
⑤ 其他可以控制像素颜色 / 状态的显示器。 
我相信读者既然都学到这里了,那么列举的这些屏幕:2.8/3.5/4.3/7/10.1 TFTLCD 模块以及 RGBLCD 模块,都至少拥有一个了,那么我们就可以用这些任意屏幕来运行LVGL。

LVGL 源码下载  

LVGL 相关的源码和工程都是存放在 GitHub 远程仓库中,该 GitHub 远程仓库地址为
https://github.com/lvgl/lvgl/ ,用户可以该仓库中下载 LVGL 图形库的源码。

1、选择版本

2、下载

3、下载后,解压缩得到文件夹:lvgl-release-v8.3 

LVGL 源码介绍

LVGL 源码的目录下有很多文件和文件夹,但用户并不需要完全了解它们,我们只需要了解与移植相关的部分即可。各文件夹和文件的功能如下表所示:

 上表中,与 LVGL 移植相关的有 examples文件夹、src 文件夹、lv_conf_template.h lvgl.h 文件,其他的部分均与移植无关,用户可以选择忽略。接下来我们分别看一下 examplessrc 这两个文件夹的文件结构:

1. examples 文件夹

该文件夹主要包含 LVGL 部件实例、动画实例、其他第三方库实例以及输入设备和显示器
驱动文件等内容,具体如表 1.3.2 所示:

上表中,只有 porting 文件夹与移植相关,其他文件夹中存放的是各种实例。  

2. src 文件夹

该文件夹主要包含 LVGL 源文件(部件源码、多种解码库)

 

上表中的内容都是与移植相关的,具体的移植方法我们后面将详细介绍,目前大家只需要对 LVGL 源码的文件结构有一定了解即可。

总结

本篇主要介绍了LVGL大概功能以及资料获取方式和源码文件的大概介绍,读者开始只需要有个大概的了解,在不断的学习之后,读者自然而然的就明白LVGL内部的实现流程和掌握LVGL的使用方式。


原文地址:https://blog.csdn.net/m0_74676415/article/details/143000514

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!