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不亮,
按鍵有外部上拉,使用不使用內部上拉都行,
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();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/224858.html
標籤:其他
上一篇:同網段下如何實作PLC遠程升級?
