我是靠谱客的博主 怡然白羊,这篇文章主要介绍学习ESP8266_9_GPIO输入,现在分享给大家,希望可以做个参考。

请先看上一篇,GPIO输出,有比较详细的介绍,再看这一篇。

1、GPIO输入配置

1.1、选择IO口为GPIO功能

PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U,FUNC_GPIO0); //GPIO0,按键

1.2、设置为输入模式

GPIO_DIS_OUTPUT(GPIO_ID_PIN(0)); //失能输出,即IO口为输入

配置是否使用内部上拉
PIN_PULLUP_DIS(PERIPHS_IO_MUX_GPIO0_U); //不使用内部上拉
PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO0_U); //使用内部上拉

1.3、用下面的宏读取IO口的状态

key = GPIO_INPUT_GET(GPIO_ID_PIN(0)); //获取GPIO0的状态

2、代码

将LED(GPIO4)设为输出模式作为指示,while中检测按键是否按下,按下LED亮,松开LED不亮。

按键有外部上拉,使用不使用内部上拉都行。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void ICACHE_FLASH_ATTR user_init(void) //用户初始化函数 { uint8 key = 0; PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U,FUNC_GPIO4); //GPIO4,LED GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1); //初始化后默认不亮 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U,FUNC_GPIO0); //GPIO0,按键 GPIO_DIS_OUTPUT(GPIO_ID_PIN(0)); //失能输出,即IO口为输入 PIN_PULLUP_DIS(PERIPHS_IO_MUX_GPIO0_U); //不使用内部上拉 while(1){ key = GPIO_INPUT_GET(GPIO_ID_PIN(0)); //获取GPIO0的状态 if(key==0) //按下 GPIO_OUTPUT_SET(GPIO_ID_PIN(4),0); //亮 else GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1); //不亮 system_soft_wdt_feed(); } }

最后

以上就是怡然白羊最近收集整理的关于学习ESP8266_9_GPIO输入的全部内容,更多相关学习ESP8266_9_GPIO输入内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部