使用参考:
ESP32系列之LVGL(三):Gui-Guider的使用_esp32 lvgl-CSDN博客
1、拷贝文件:
按照上面的文章,使用Gui-Guider软件生成C代码之后,custom和generated是我们要使用到的文件, 其中custom是用来存放gui工程中我们自定义的一些代码,实际上如果没有自定义代码的话也可以不用,generated则是Gui-Guider工程生成的C代码,我们主要将这部分导入到我们的esp32s3工程中。
到esp32的工程main目录下(已经移植好LVGL的工程),创建一个ui文件夹,将custom和generated放入此文件夹内。ui文件夹可以选择放到工程里的components文件夹内成为一个组件,也可以直接放到main文件夹下。这里选择直接放到main文件夹下,工程结构如下:
修改main文件夹下的CMakeLists.txt:
原来的CMakeLists.txt文件如下:
idf_component_register(
SRC_DIRS .
INCLUDE_DIRS .
)
修改之后的CMakeLists.txt文件如下:
file(GLOB_RECURSE srcs *.c
ui/custom/*.c
ui/generated/*.c
ui/generated/guider_customer_fonts/*.c
ui/generated/guider_fonts/*.c
ui/generated/images/*.c
)
set(include_dirs
.
ui/custom
ui/generated
ui/generated/guider_customer_fonts
ui/generated/guider_fonts
ui/generated/images
)
idf_component_register(
SRC_DIRS .
SRCS ${srcs}
INCLUDE_DIRS ${include_dirs}
)
这块很重要,设置正确才能编译通过。
修改main.c:
主要修改对文件的引用,定义lv_ui guider_ui变量,调用ui入口setup_ui()即可。
添加h文件
#include "gui_guider.h"
#include "custom.h"
定义全局ui变量
lv_ui guider_ui;
添加运行代码
setup_ui(&guider_ui);
整体如下:
#include <stdio.h>
#include "string.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "qmsd_board.h"
#include "qmsd_utils.h"
#include "lvgl.h"
#include "gui_guider.h"
#include "custom.h"
lv_ui guider_ui;
#define TAG "QMSD-MAIN"
void gui_user_init() {
setup_ui(&guider_ui);
}
void app_main(void) {
gpio_install_isr_service(ESP_INTR_FLAG_SHARED);
qmsd_board_config_t config = QMSD_BOARD_DEFAULT_CONFIG;
qmsd_board_init(&config);
printf("Fine qmsd!\r\n");
}