學習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();
	}
}
相關文章
相關標籤/搜索