【前言】
官方的GuiGuider可以快捷的设计界面,可以直接写入到开发板,也可以导出工程在MCUXpressoIDE中进行二次开发。本次就是如何使用GuiGuider设计好界面,然后使用MCUXpressoIDE进行二次开发,如何实现使用LVGL来对开发板的LED进行控制。
【实现步骤】
1、使用GuiGuider创建一个BouttonCouter的工程,导出MCUXpresso工程到本地。
2、使用MCUXpressoIDE导入生成的工程:
3、打开工程后,找到LED的原理图。
4、打开引脚配置,将P4_18、P4_19、P4_17设置为GPIO输出
5、在设计界面中添加一个开关控制,以及一个LED控件:
6、添加开关的控件事件,添加swicth事件,添加true的事件修改背景色以及false的背景色。
7、生成工程后,添加代码板载LED的写入高低电平。他的事件代码是在events_init.c中,首先添加fs_gpio.h的头文件,然后在两个事件中添加对RED_LED的控制:
static void blueCounter_sw_1_event_handler (lv_event_t *e)
{
lv_event_code_t code = lv_event_get_code(e);
switch (code) {
case LV_EVENT_CLICKED:
{
lv_obj_t * status_obj = lv_event_get_target(e);
int status = lv_obj_has_state(status_obj, LV_STATE_CHECKED) ? true : false;
switch (status) {
case (true):
{
lv_led_set_brightness(guider_ui.blueCounter_led_1, 255);
lv_obj_set_style_image_recolor(guider_ui.blueCounter_led_1, lv_color_hex(0x8bc322), LV_PART_MAIN);
GPIO_PinWrite(GPIO4, 18U, 0); //写低电平,点亮LED灯
break;
}
case (false):
{
lv_led_set_brightness(guider_ui.blueCounter_led_1, 100);
lv_obj_set_style_image_recolor(guider_ui.blueCounter_led_1, lv_color_hex(0xb2cbaa), LV_PART_MAIN);
GPIO_PinWrite(GPIO4, 18U, 1); //写高电平,熄灭LED灯
break;
}
default:
break;
}
break;
}
default:
break;
}
}
下载到开发板后,就可以实现led灯的控制了。
【效果展示】
1、开灯
2、关灯:
【体验总结】
快速的实现GUI与开发板的硬件交互,得益于NXP的开发工具的支持,用户不用书写复杂的低层驱动,只需要少量的代码即可实现GUI的交互功能。
其实功能的实现不此这些,更多功能,大家可以在NXP的官网找到更多的示例,来评估用户想实现的功能。


