在移植好lvgl框架,能正常显示和触摸后,使用Gui-Guider软件绘制ui界面,需要把其生成的代码导入esp32工程。

步骤一

在main目录下创建ui子目录,并把生成的代码放在该目录下。

guider-gui生成代码,点击工程,选择rt-thread,然后选择main目录下的ui子目录文件夹进行导出。

结果目录:

步骤二

修改main目录下的CMakeLists.txt,把ui下的文件加入编译路径。

# 使用GLOB_RECURSE命令获取ui目录下的所有.c文件,并将其存储在变量ui_srcs中
file(GLOB_RECURSE ui_srcs 
        ./ui/custom/*.c
        ./ui/generated/*.c 
        ./ui/generated/guider_customer_fonts/*.c 
        ./ui/generated/guider_fonts/*.c
        ./ui/generated/images/*.c )

# 使用list命令将ui目录及其子目录添加到include_ui_dirs列表中,以便在编译时包含这些目录
list(APPEND include_ui_dirs
    ui/generated
    ui/custom
    ui/generated/guider_customer_fonts
    ui/generated/guider_fonts
    ui/generated/images
    ui
)

# 使用idf_component_register命令注册组件,指定源文件和包含目录
idf_component_register(
    SRCS
        "station_example_main.c"  # 主程序源文件
        "mqtt_cjson.c"            # MQTT和cJSON相关的源文件
        "i2c_master/i2c.c"        # I2C主控相关的源文件
        "i2c_GXHTC3/i2c_gxhtc3.c" # I2C GXHTC3传感器相关的源文件
        "spi_master/spi.c"        # SPI主控相关的源文件
        "esp_spi_lcd/esp_spi_lcd.c" # ESP SPI LCD相关的源文件
        "esp_lvgl_port_init/esp_lvgl_port_init.c" # ESP LVGL初始化相关的源文件
        ${ui_srcs}                # 包含所有ui目录下的.c文件
    INCLUDE_DIRS
        .                        # 当前目录
        i2c_master               # I2C主控相关的头文件目录
        i2c_GXHTC3               # I2C GXHTC3传感器相关的头文件目录
        spi_master               # SPI主控相关的头文件目录
        esp_spi_lcd              # ESP SPI LCD相关的头文件目录
        esp_lvgl_port_init       # ESP LVGL初始化相关的头文件目录
        ${include_ui_dirs}       # 包含所有ui目录及其子目录
)

步骤三

调用生成的ui代码。在main.c中添加代码;

#include "gui_guider.h"
#include "custom.h"
lv_ui guider_ui;

void app_main(void)
{
    //lvgl初始化代码
    
    //调用生成的ui代码
    setup_ui(&guider_ui);
}

参考文章

https://blog.csdn.net/m0_55986987/article/details/133032918

更多推荐