这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【换取逻辑分析仪】LVGL触控按钮点灯

共1条 1/1 1 跳转至

【换取逻辑分析仪】LVGL触控按钮点灯

工程师
2025-04-07 22:44:00   被打赏 18 分(兑奖)     打赏

1、简介

在学习LVGL应用开发过程中,为UI控件定制用户响应事件是经常遇到的。以下使用纯代码的方式创建屏幕触控开关,当用户按下触控按钮后,完成板载LED小灯的点亮、关闭。

2、开发环境、所用开发板

MDK Keil,STM32L4-discovery

aa9a6f271e023eeb762092a2a6631b88.jpg

3、代码说明

3.1 LED点亮按钮控件btn

static void lv_btn_on(void)
{
	lv_obj_t* btn = lv_btn_create(lv_scr_act());//创建按键对象
	lv_obj_set_pos(btn, 60, 60-10);             //按键坐标
	lv_obj_set_size(btn, 120, 50);
	lv_obj_t* label = lv_label_create(btn);
	lv_label_set_text(label, "LED_ON");
	lv_obj_center(label);

	lv_obj_set_style_bg_color(btn, lv_color_hex(0xFF0000), LV_STATE_PRESSED);  //按键按下后UI控件颜色改变
	lv_obj_add_event_cb(btn, LED_ON_event_cb,LV_EVENT_CLICKED, NULL);//为btn注册点击事件
}

为btn点击事件创建回调函数

static void LED_ON_event_cb(lv_event_t * event)
{
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_RESET);//点亮LED
}

3.2 LED关闭按钮控件btn

按钮控件btn创建与点亮控件基本相同,但回调函数是LED_OFF_event_cb

static void lv_btn_off(void)
{
	lv_obj_t* btn = lv_btn_create(lv_scr_act());
	lv_obj_set_pos(btn, 60, 130+10);
	lv_obj_set_size(btn, 120, 50);
	lv_obj_t* label = lv_label_create(btn);
	lv_label_set_text(label, "LED_OFF");
	lv_obj_center(label);

	lv_obj_set_style_bg_color(btn, lv_color_hex(0x00FF00), LV_STATE_PRESSED);  
	lv_obj_add_event_cb(btn, LED_OFF_event_cb,LV_EVENT_CLICKED, NULL);
}

为btn点击事件创建回调函数

static void LED_OFF_event_cb(lv_event_t * event)
{
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_SET);  //关闭LED
}

3.3 lv控件初始化

	lv_init();//lvgl控件初始化
	lv_port_disp_init();//显示设备初始化
	lv_port_indev_init();//触控设备初始化
	lv_btn_on();//点灯控件初始化
	lv_btn_off();

4、运行效果

可以看到当触控按钮按下后,点灯、关灯操作得到执行

screenshots.gif




关键词: LVGL触控点灯    

共1条 1/1 1 跳转至

回复

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