这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【Zephyr|STM32H747】使用GUIGuider2.0.0设计界面

共2条 1/1 1 跳转至

【Zephyr|STM32H747】使用GUIGuider2.0.0设计界面

高工
2026-08-22 17:13:35     打赏

【前言】

GUI Guider2.0.0版本可以直接导出zephyr工程,这就给GUI设计提供了极大的方便。这一篇我将分享如何使用GUI Guider2.0.0设计STM32H747I-disco的界面,快速实现LVGL的界面设计。

【GUI界面设计】

1、使用GUIGuider2.0.0生成自定义的界面工程:

f10c5a1674be088e004b1520a9ce4352.png

屏我们适应800*480的长宽。

2、设计基础界面如下:

image.png

3、在button添加自定义事件,代码如下:

image.png

【工程导出】

在GUIGuider2.0.0的文件夹中,拷贝generated、coustom文件到src目录下面。

image.png

【代码修改】

1、将generated与coustom添加到CMakeLists.txt中

用 FILE(GLOB_RECURSE) 把 src/generated/** 和 src/custom/** 全部加入编译,并添加 include 路径 src/generated、src/generated/events、src/custom(生成代码里存在 events/gg_event.h、custom.h 这类交叉引用)。用 GLOB 是为了以后从 GUI Guider 重新生成代码拷进来时不用改 CMake(重新构建时记得带 -p always 刷新文件列表)。

# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.20.0)

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(stm32h747_lvgl)

# GUI Guider 2.0.0 generated code (regenerated files are picked up on rebuild)
FILE(GLOB_RECURSE gui_guider_sources
    src/generated/*.c
    src/custom/*.c
)

target_include_directories(app PRIVATE
    src/generated
    src/generated/events
    src/custom
)

target_sources(app PRIVATE src/main.c ${gui_guider_sources})

2、修改main.c如下:

/*
 * STM32H747I-DISCO + B-LCD40-DSI1 (MB1166-A09) GUI Guider demo
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/devicetree.h>
#include <zephyr/drivers/display.h>
#include <zephyr/logging/log.h>
#include <lvgl.h>

#include "gui_guider.h"
#include "gg_utils.h"
#include "custom.h"

LOG_MODULE_REGISTER(app, LOG_LEVEL_INF);

gg_ui_t guider_ui;

int main(void)
{
    const struct device *display_dev =
        DEVICE_DT_GET(DT_CHOSEN(zephyr_display));

    if (!device_is_ready(display_dev)) {
        LOG_ERR("Display device not ready");
        return 0;
    }

    setup_ui(&guider_ui);
    custom_init(&guider_ui);

    display_blanking_off(display_dev);

    LOG_INF("GUI Guider UI started");

    while (1) {
        lv_timer_handler();
        k_sleep(K_MSEC(10));
    }

    return 0;
}

3、prj.conf不需要修改。

【编译与下载】

执行如下编译命令:

west build -b stm32h747i_disco/stm32h747xx/m7 -p always --shield st_b_lcd40_dsi1_mb1166_a09

执行west flash就可以直接将固件下载到开发板中。

【工程效果】

804ef040b42c36c524e3e52a44a0667a.jpg

点击button可以实现计数据的累加。

【总结】

结合zephyr与guiguider2.0.0的设计工具,可以高效快捷的实现GUI的设计。相比stm32 touchgfx,更新快捷高效!




关键词: Zephyr     STM32H747     Guider2.    

高工
2026-08-22 20:02:46     打赏
2楼

看到这,我就想起上次NXP的问题,你们用我们的gui guide,用的也是我们的MCU吗?结果下面回答,一部分用了


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]