学习ESP8266_9_GPIO输入

一、GPIO输入配置

1.一、选择IO口为GPIO功能

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

1.二、设置为输入模式

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

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

spa

1.三、用下面的宏读取IO口的状态

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

二、代码

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

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

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();
	}
}
相关文章
相关标签/搜索