ESP32 EXT1 唤醒
ESP32 EXT1 wakeup
我有一个连接到 3 x 4 矩阵键盘的 ESP32 开发套件。
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
pull-up/down 电阻在深度睡眠期间通常不会启用,这似乎可以解释不一致。
我有一个连接到 3 x 4 矩阵键盘的 ESP32 开发套件。
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 pull-up/down 电阻在深度睡眠期间通常不会启用,这似乎可以解释不一致。