1.简述
IO0 对应按键 控制 IO2LED闪烁,同时当LED亮的时候开关闭合,当LED灭的时候LED闪烁。
为什么这么做,因为手里没有触摸屏。
2. 实现原理
首先我们要明白开关闭合的原理,对于触摸屏来说,当你触摸开关的时候会触发点击事件,同时给开关控件添加点击事件。
添加点击事件,也就是开关闭合
lv_obj_add_state(guider_ui.screen_sw_1,LV_STATE_CHECKED);
清除点击事件,也就是开关打开
lv_obj_clear_state(guider_ui.screen_sw_1,LV_STATE_CHECKED);
#3.部分代码文章来源:https://www.toymoban.com/news/detail-541780.html
pinMode(LED,OUTPUT);
pinMode(key, INPUT);
}
bool state_led = 0;
uint8_t key_state = 0;
void key_scan()
{
if(digitalRead(key)==LOW){
delay(10);
if(digitalRead(key)==LOW){
key_state++;
if(key_state>=200) key_state =200;
}
}
else key_state = 0;
}
void loop()
{ key_scan();
if(key_state==2){
state_led = !state_led;
if(state_led){
digitalWrite(LED,LOW);
lv_obj_clear_state(guider_ui.screen_sw_1,LV_STATE_CHECKED);
}
else {digitalWrite(LED,HIGH);
lv_obj_add_state(guider_ui.screen_sw_1,LV_STATE_CHECKED);
}
}
lv_timer_handler(); /* let the GUI do its work */
delay( 5 );
}
ps: 我上面这种做法很不建议,很时消耗资源,导致LVGL运行十分的卡顿,LVGL内置键盘,鼠标,编码器的接口,因此当没有触摸屏幕的时候用以上器件最为合适了。文章来源地址https://www.toymoban.com/news/detail-541780.html
到了这里,关于[esp32 + LVGL]物理按键控制屏幕上开关和LED闪烁的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!