一、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(); } }