反转 ESP32 上的 RTC GPIO
Invert an RTC GPIO on ESP32
我正在开发一种电池供电的设备,它会在传感器开关变高时唤醒。现在我还需要设备返回休眠模式并等待传感器开关变低。我正在使用 ESP-IDF。我已经配置了 ext_1 唤醒引脚。设备按预期唤醒。
问题是引脚设置为在变高时唤醒。当设备重新进入睡眠状态时,引脚仍将处于高电平,我想检测它何时变低。我的第一个想法是反转引脚 - 如此低的读数就高。我在 ESP-IDF 中看不到这样做的方法。
我不想为此使用 ULP,因为它在睡眠时消耗了太多电流。
根据 gpio_wakeup_enable() documentation,您可以通过将 GPIO_INTR_LOW_LEVEL
或 GPIO_INTR_HIGH_LEVEL
指定为参数 intr_type
的值来请求在低或高 GPIO 值时从轻度睡眠中唤醒.
如果您使用单针唤醒,只需将级别更改为 ESP_EXT1_WAKEUP_ALL_LOW,然后再返回睡眠状态。如果您需要它在多个引脚中的任何一个变低时唤醒,and/or 需要它在混合状态下多个唤醒引脚休眠,ULP 是我想到的唯一选择。问题不只是让它在任何低电平时唤醒,当任何高电平时它都不会回到睡眠状态——根据定义,只有其他 ext1 级别选择 ESP_EXT1_WAKEUP_ANY_HIGH.
我正在开发一种电池供电的设备,它会在传感器开关变高时唤醒。现在我还需要设备返回休眠模式并等待传感器开关变低。我正在使用 ESP-IDF。我已经配置了 ext_1 唤醒引脚。设备按预期唤醒。
问题是引脚设置为在变高时唤醒。当设备重新进入睡眠状态时,引脚仍将处于高电平,我想检测它何时变低。我的第一个想法是反转引脚 - 如此低的读数就高。我在 ESP-IDF 中看不到这样做的方法。
我不想为此使用 ULP,因为它在睡眠时消耗了太多电流。
根据 gpio_wakeup_enable() documentation,您可以通过将 GPIO_INTR_LOW_LEVEL
或 GPIO_INTR_HIGH_LEVEL
指定为参数 intr_type
的值来请求在低或高 GPIO 值时从轻度睡眠中唤醒.
如果您使用单针唤醒,只需将级别更改为 ESP_EXT1_WAKEUP_ALL_LOW,然后再返回睡眠状态。如果您需要它在多个引脚中的任何一个变低时唤醒,and/or 需要它在混合状态下多个唤醒引脚休眠,ULP 是我想到的唯一选择。问题不只是让它在任何低电平时唤醒,当任何高电平时它都不会回到睡眠状态——根据定义,只有其他 ext1 级别选择 ESP_EXT1_WAKEUP_ANY_HIGH.