文章目录
一、简介
LVGL(Light and Versatile Graphics Library)是一个轻量级的嵌入式图形库。LVGL的项目作者是来自匈牙利首都布达佩斯的 Gábor Kiss-Vámosi 。
二、准备工程(请提前安装idf)
(1) 工程准备:
- 在工程目录,打开cmd输入:如下,然后回车,开始下载LVGL
- github: git clone --recurse-submodules https://github.com/lvgl/lv_port_esp32.git
- gitee(国内下载快):git clone --recurse-submodules https://gitee.com/wangtake/lv_port_esp32.git

(2) 下载完毕后,如图所示:

(3) 直接用esp32s3编译就会报错,如下图:

由于s3只有两组spi,与工程不适配,需要我们手动修改代码。
修改内容如下:
-
x\Espressif\components\hal\include\hal\spi_types.h
![在这里插入图片描述]()
-
x\Espressif\components\lvgl_esp32_drivers\lvgl_helpers.c
![在这里插入图片描述]()
(4) 修改完毕后,编译ok

其他
(1)帧数最高的组合是 :
采用LTDC+配置LVGL的显存方式为第二种(两个屏幕尺寸的八分之一的在内部SRAM里的显存)+打开DMA2D加速宏。
(2)配置要求
-
基本上,每个能够驱动显示器的现代控制器都适合运行 LVGL。最低要求是:
-
16、32 或 64 位微控制器或处理器
-
建议使用 16 MHz 时钟速度
-
闪存/ROM:> 64 kB 用于非常重要的组件 (> 建议使用 180 kB)
-
RAM:
静态 RAM 使用量:0~2 kB,取决于使用的功能和对象类型
堆: > 2kB (> 建议使用 8 kB) -
动态数据(堆): > 2 KB (> 如果使用多个对象,建议使用 16 kB). 在 lv_conf.h 文件中配置 LV_MEM_SIZE 生效。
-
显示缓冲区:> “水平分辨率”像素(推荐> 10 × 10ד水平分辨率”)
MCU 或外部显示控制器中的一个帧缓冲器 -
C99 或更新的编译器
-
具备基本的 C(或 C++)知识
一块能驱动显示屏且Flash大于64KB,RAM大于20KB的单片机都可以支持运行LVGL。这样也就说明只需要是我们经常用于开发的单片机几乎都可以支持(16bit及以上)LVGL,LVGL能够同时被这么多平台支持的主要原因是LVGL对硬件的要求并不算太高。


浙公网安备 33010602011771号