设置项目

获取库

LVGL 可在 GitHub 上获取:https://github.com/lvgl/lvgl

您可以克隆它或从 GitHub 下载最新版本的库。

将 lvgl 添加到您的项目

图形库本身是 lvgl 目录。它包含几个文件夹,但要使用 lvgl,您只需要 src 文件夹中的 .c.h 文件。

自动添加文件

如果您的 IDE 会自动添加复制到项目文件夹中的文件夹中的文件(如 Eclipse 或 VSCode),您可以直接将 lvgl 文件夹按原样复制到您的项目中。

Make 和 CMake

LVGL 还支持开箱即用的 makeCMake 构建系统。要将 LVGL 添加到基于 Makefile 的构建系统中,请在主 Makefile 中添加以下几行:

LVGL_DIR_NAME ?= lvgl     # lvgl 文件夹的名称(如果已重命名,请更改此名称)
LVGL_DIR ?= ${shell pwd}  # lvgl 文件夹的路径
include $(LVGL_DIR)/$(LVGL_DIR_NAME)/lvgl.mk

要与 CMake 集成,请参阅文档的相关部分。

其他平台和工具

快速入门部分包含许多特定平台的描述,例如 ESP32、Arduino、NXP、RT-Thread、NuttX 等。

示例和演示

lvgl 文件夹还包含一个 examples 和一个 demos 文件夹。如果您需要手动将源文件添加到项目中,也可以对这两个文件夹的源文件执行相同操作。makeCMake 会处理示例和演示,因此在这些情况下无需额外操作。

配置文件

LVGL 有一个名为 lv_conf.h 的配置头文件。您可以修改此头文件以设置库的基本行为、禁用未使用的模块和功能、在编译时调整内存缓冲区的大小等。

要获取 lv_conf.h复制 lvgl/lv_conf_template.hlvgl 目录旁边,并将其重命名为 lv_conf.h。打开文件并将开头的 #if 0 更改为 #if 1 以启用其内容。因此,文件的布局应如下所示:

|-lvgl
|-lv_conf.h
|-其他文件和文件夹

配置文件中的注释解释了选项的含义。请务必根据显示器的颜色深度至少设置 LV_COLOR_DEPTH。请注意,示例和演示需要在 lv_conf.h 中显式启用。

或者,lv_conf.h 可以复制到其他位置,但随后您需要将 LV_CONF_INCLUDE_SIMPLE 定义添加到编译器选项中(例如,GCC 编译器的 -DLV_CONF_INCLUDE_SIMPLE),并手动设置包含路径(例如,-I../include/gui)。 在这种情况下,LVGL 将尝试通过 #include "lv_conf.h" 简单地包含 lv_conf.h

您甚至可以为 lv_conf.h 使用不同的名称。可以通过 LV_CONF_PATH 定义设置自定义路径。 例如:-DLV_CONF_PATH="/home/joe/my_project/my_custom_conf.h"

如果定义了 LV_CONF_SKIP,LVGL 将不会尝试包含 lv_conf.h。相反,您可以使用构建选项传递配置定义。例如:"-DLV_COLOR_DEPTH=32 -DLV_USE_BTN=1"。未设置的选项将获得默认值,与 lv_conf_template.h 中的值相同。

LVGL 还可以通过 Kconfigmenuconfig 使用。您可以将 lv_conf.h 与 Kconfig 一起使用,但请记住,lv_conf.h 或构建设置(-D...)中的值会覆盖 Kconfig 中设置的值。要忽略 lv_conf.h 中的配置,只需删除其内容,或定义 LV_CONF_SKIP

初始化

要使用图形库,您需要初始化它并设置所需的组件。初始化的顺序如下:

  1. 调用 lv_init()

  2. 初始化您的驱动程序。

  3. 在 LVGL 中注册显示和输入设备驱动程序。了解更多关于显示输入设备注册的信息。

  4. 在中断中每隔 x 毫秒调用 lv_tick_inc(x),以向 LVGL 报告经过的时间。了解更多

  5. 每隔几毫秒调用 lv_timer_handler() 以处理与 LVGL 相关的任务。了解更多