[英]ESP32 EXT1 wakeup
我有一個 ESP32 開發套件連接到 3 x 4 矩陣鍵盤。
3 列連接到 PINS:12、13、27
4 行連接到 PINS:14、15、32、33
目標:我希望能夠將 MCU 置於深度睡眠模式並能夠通過按鍵喚醒它,這意味着任何按鍵,而不是專門的按鍵。
我已經把這段代碼放在一起
void setup()
{
Serial.begin(115200);
// Wait for serial.
while (!Serial)
delay(100);
Serial.println("I am ON");
// power all columns.
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(27, OUTPUT);
// enable all rows as input (HIGH).
pinMode(14, INPUT_PULLDOWN);
pinMode(15, INPUT_PULLDOWN); // tried also pin 35, no luck.
pinMode(32, INPUT_PULLDOWN);
pinMode(33, INPUT_PULLDOWN);
esp_sleep_enable_ext1_wakeup(0b001100000000000000001100000000000000, ESP_EXT1_WAKEUP_ANY_HIGH);
// hold the pin HIGH during sleep.
gpio_deep_sleep_hold_en();
// do the actual output on the pins.
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(27, HIGH);
// delay to make sure.
delay(500);
esp_deep_sleep_start();
}
問題似乎是整個設置不穩定。 一些按鍵比其他按鍵更一致。 但更一致仍然意味着有時更一致的密鑰將無法喚醒設備。
我已經在 2 個不同的板(Huzzah32 和通用開發套件)上嘗試了該代碼段,結果相同。
鍵盤設置在其他方面很好用,這意味着我能夠可靠地讀取按鍵。
啊,我找到了: https : //docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/sleep_modes.html#external-wakeup-ext1 上拉/下拉電阻在深度睡眠期間通常不會啟用,這似乎可以解釋不一致的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.