Arduino

LVGL 库 可直接作为 Arduino 库使用。

请注意,您需要选择足够强大的开发板来运行 LVGL 和您的 GUI。请参阅 LVGL 的要求

例如,ESP32 是一个使用 LVGL 创建 UI 的不错选择。

获取 LVGL Arduino 库

LVGL 可以通过 Arduino IDE 的库管理器安装,也可以作为 .ZIP 库安装。

您可以从 GitHub 下载 LVGL 的最新版本,并将其复制到 Arduino 的库文件夹中。

设置驱动程序

建议使用 TFT_eSPI 库作为 TFT 驱动程序以简化测试。 要使其正常工作,请根据您的 TFT 显示屏类型设置 TFT_eSPI,通过编辑以下文件之一:

  • User_Setup.h

  • 或在 User_Setup_Select.h 中选择一个配置

这两个文件都位于 TFT_eSPI 库的文件夹中。

配置 LVGL

LVGL 有一个名为 lv_conf.h 的配置文件。安装 LVGL 后,请按照以下配置步骤操作:

  1. 转到已安装的 Arduino 库的目录

  2. 转到 lvgl 并将 lv_conf_template.h 复制为 lv_conf.h,放入 Arduino 库目录中 lvgl 库文件夹旁边。

  3. 打开 lv_conf.h 并将第一个 #if 0 更改为 #if 1 以启用文件内容

  4. LV_COLOR_DEPTH 中设置显示屏的颜色深度

  5. 设置 LV_TICK_CUSTOM 1

最终,lv_conf.h 的布局应如下所示:

arduino
 |-libraries
   |-lvgl
   |-other_lib_1
   |-other_lib_2
   |-lv_conf.h

初始化并运行 LVGL

查看 LVGL_Arduino.ino 以了解如何初始化 LVGL。 TFT_eSPI 用作显示驱动程序。

在 INO 文件中,您可以看到如何为 LVGL 注册显示屏和触摸板并调用示例。

使用示例和演示

请注意,并非每个示例都有专用的 INO 文件。相反,您可以通过调用 lv_example_... 函数加载示例。例如 lv_example_btn_1()

重要 由于 Arduino 构建系统的一些限制,您需要将 lvgl/examples 复制到 lvgl/src/examples。对于演示也是如此,将 lvgl/demos 复制到 lvgl/src/demos

调试和日志记录

LVGL 在出现问题时可以显示调试信息。 在 LVGL_Arduino.ino 示例中有一个 my_print 方法,它将此调试信息发送到串行接口。 要启用此功能,您必须编辑 lv_conf.h 文件并在 log settings 部分启用日志记录:

/*Log settings*/
#define USE_LV_LOG      1   /*Enable/disable the log module*/
#if LV_USE_LOG
/* How important log should be added:
 * LV_LOG_LEVEL_TRACE       A lot of logs to give detailed information
 * LV_LOG_LEVEL_INFO        Log important events
 * LV_LOG_LEVEL_WARN        Log if something unwanted happened but didn't cause a problem
 * LV_LOG_LEVEL_ERROR       Only critical issue, when the system may fail
 * LV_LOG_LEVEL_NONE        Do not log anything
 */
#  define LV_LOG_LEVEL    LV_LOG_LEVEL_WARN

启用日志模块并相应设置 LV_LOG_LEVEL 后,输出日志将以 115200 bps 的速率发送到 Serial 端口。