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

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、运行效果
可以看到当触控按钮按下后,点灯、关灯操作得到执行


 
					
				
 
			
			
			
						
			 
					
				 
					
				 
					
				 
					
				 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

