GD32入门到实战45--LVGL开发(Code::Blocks)之创建控件
打开
可以设置屏幕分辨率
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_Hvoid HmiDemo(void);#endif // HMI_DEMO_H
main.c
/*** @file main**//********************** INCLUDES*********************/
#include <stdlib.h>
#include <unistd.h>#include "lvgl/lvgl.h"
#include "lvgl/demos/widgets/lv_demo_widgets.h"
#include "lv_drivers/win32drv/win32drv.h"#include <windows.h>
#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;
}
运行可以看见: