之前介绍了如何移植NXP GUI Guider的界面到小安派SCP4.3,接下来学习如何使用LVGL的控件
按照惯例学习一般都会从点灯开始,正好控件中也有个LED,通过它来实现点灯,按键切换LED状态
打开GUI Guider新建一个空界面的工程
将屏幕背景色改为黑色,然后添加一个LED控件
添加的LED默认名称是LED_1
但这不是LED控件的完整名称,先生成一下代码,在代码中找到LED的真正名称
选中LED控件后,点击左上角这个图标
添加一个按键事件
选择LED
找到最下面的自定义
勾选后点击后面的C,然后填入
- lv_led_toggle(guider_ui.screen_led_1);
复制代码
生成代码后按照上一篇帖子的方法把界面移植过去,在main.c的按键处理方法button_process_task中添加lv_event_send(guider_ui.screen_led_1,LV_EVENT_KEY,&press_mode);
运行效果
这个LED控件还有其他的方法可用,例如设置颜色或亮度,接下来实现长按设置颜色的功能
修改按键处理,将长按状态传入
在events_init.c中修改
- uint16_t cur_h = 0;
- static void screen_led_1_event_handler (lv_event_t *e)
- {
- lv_event_code_t code = lv_event_get_code(e);
- switch (code) {
- case LV_EVENT_KEY:
- {
- if(*(uint32_t *)(e->param) == 1)
- lv_led_toggle(guider_ui.screen_led_1);
- else if(*(uint32_t *)(e->param) == 2)
- {
- lv_led_set_color(guider_ui.screen_led_1,lv_color_hsv_to_rgb(cur_h,100,100));
- cur_h += 60;
- if(cur_h > 359)
- cur_h = 0;
- }
- break;
- }
- default:
- break;
- }
- }
复制代码 运行效果
|