您的位置:首页 > Web前端 > Node.js

Nodemcu freertos 学习之路 -- GPIO口控制LED灯开关

2018-01-12 09:01 435 查看
1.环境介绍

如果创建项目请看第2篇 led闪烁.  ESP8266实现开关功能。这里利用线程获取gpio的状态. 从而控制led灯 亮或灭

2.软件消抖

关于led灯的控制和GPIO口状态的读取 在第2篇中都有介绍了,这里主要处理软件消抖

软件消抖的原理是,当获取到按键按下的状态时。延迟20ms再获取一次状态,当第二次的状态同样为按下时。就判断为没有抖动了。即为按下状态。最后等待按键松开即可。

代码

void key_handler_task(void  *pvParameters){
key_init();
for(;;){
uint32_t bit;
if (GPIO_INPUT_GET(15) == 0x01){
vTaskDelay(20 / portTICK_RATE_MS);
if( GPIO_INPUT_GET(15) == 0x01){
led_toggle();
while( GPIO_INPUT_GET(15) == 0x01 );
}
}
vTaskDelay(100 / portTICK_RATE_MS);
}
vTaskDelete(NULL);

}

3.查看结果



查看到led of led on 同时LED灯跟据开关次数不停迁换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件消抖