LVGL(Light and Versatile Graphics Library)是一个轻量级的嵌入式图形库。LVGL的项目作者是来自匈牙利首都布达佩斯的 Gábor Kiss-Vámosi 。
一 准备工程(请提前安装idf)
[ESP32] 快速搭建vscode开发环境(便捷式)
下载完毕后,如图所示:
直接用esp32s3编译就会报错,如下图:
由于s3只有两组spi,与工程不适配,需要我们手动修改代码。
修改内容如下:
- x\Espressif\components\hal\include\hal\spi_types.h
- x\Espressif\components\lvgl_esp32_drivers\lvgl_helpers.c
修改完毕后,编译ok
帧数最高的组合是 :
采用LTDC+配置LVGL的显存方式为第二种(两个屏幕尺寸的八分之一的在内部SRAM里的显存)+打开DMA2D加速宏。
配置要求
基本上,每个能够驱动显示器的现代控制器都适合运行 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对硬件的要求并不算太高。