1.簡述
IO0 對應(yīng)按鍵 控制 IO2LED閃爍,同時當LED亮的時候開關(guān)閉合,當LED滅的時候LED閃爍。
為什么這么做,因為手里沒有觸摸屏。
2. 實現(xiàn)原理
首先我們要明白開關(guān)閉合的原理,對于觸摸屏來說,當你觸摸開關(guān)的時候會觸發(fā)點擊事件,同時給開關(guān)控件添加點擊事件。
添加點擊事件,也就是開關(guān)閉合
lv_obj_add_state(guider_ui.screen_sw_1,LV_STATE_CHECKED);
清除點擊事件,也就是開關(guān)打開
lv_obj_clear_state(guider_ui.screen_sw_1,LV_STATE_CHECKED);
#3.部分代碼文章來源:http://www.zghlxwxcb.cn/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: 我上面這種做法很不建議,很時消耗資源,導(dǎo)致LVGL運行十分的卡頓,LVGL內(nèi)置鍵盤,鼠標,編碼器的接口,因此當沒有觸摸屏幕的時候用以上器件最為合適了。文章來源地址http://www.zghlxwxcb.cn/news/detail-541780.html
到了這里,關(guān)于[esp32 + LVGL]物理按鍵控制屏幕上開關(guān)和LED閃爍的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!