GD32入门到实战45--LVGL研发(Code::Blocks)之创建控件
2025-09-16 13:31 tlnshuju 阅读(6) 评论(0) 收藏 举报打开

可以设置屏幕分辨率
lv_conf.h设置要和keil设置的一样

设置好后可以点击这个红色按键(编译+仿真)
这时会弹出窗口

创建控件
我们在文件夹创建hmi_demo文件夹

我们在软件新建空白文件

命名放在hmi_demo文件夹

点击ok

新建头文件

我们在Sources的lvgl文件夹添加刚才创建的.c文件

在Headers的lvgl文件夹添加刚才创建的.h文件


编写hmi_demo.c
#include "lvgl.h"
void HmiDemo(void)
{
lv_obj_t *btn1 = lv_btn_create(lv_scr_act());//父对象为屏幕左上角原点
lv_obj_set_size(btn1, 100, 100);//设置btn大小
lv_obj_set_pos(btn1,120,40); //设置btn位置(基于父对象)
// lv_obj_t *btn2 = lv_btn_create(btn1);//父对象为btn1
}
.h
#ifndef _HMI_DEMO_H
#define _HMI_DEMO_H
void HmiDemo(void);
#endif // HMI_DEMO_H
main.c
/**
* @file main
*
*/
/*********************
* INCLUDES
*********************/
#include
#include
#include "lvgl/lvgl.h"
#include "lvgl/demos/widgets/lv_demo_widgets.h"
#include "lv_drivers/win32drv/win32drv.h"
#include
#include "hmi_demo/hmi_demo.h"//调用我们自己写的库
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void hal_init(void);
static int tick_thread(void *data);
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nCmdShow)
{
/*Initialize LittlevGL*/
lv_init();
/*Initialize the HAL for LittlevGL*/
lv_win32_init(hInstance, SW_SHOWNORMAL, 320, 480, NULL);
/*Output prompt information to the console, you can also use printf() to print directly*/
LV_LOG_USER("LVGL initialization completed!");
/*Run the demo*/
//lv_demo_widgets();
HmiDemo();//人机交互界面
while(!lv_win32_quit_signal) {
/* Periodically call the lv_task handler.
* It could be done in a timer interrupt or an OS task too.*/
lv_task_handler();
usleep(10000); /*Just to let the system breath*/
}
return 0;
}
运行可以看见:

浙公网安备 33010602011771号