如何解决在 ESP32 上反转 RTC GPIO
我正在开发一种电池供电的设备,该设备会在传感器开关变高时唤醒。现在我还需要设备返回休眠模式并等待传感器开关变低。我正在使用 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。如果您需要在多个引脚中的任何一个变低时唤醒它,和/或需要它在多个唤醒引脚处于混合状态时休眠,ULP 是我想出的唯一选择。问题不仅在于让它在任何低电平时唤醒,当任何一个高电平时它都不会重新进入睡眠状态——根据定义,只有其他 ext1 级别选择 ESP_EXT1_WAKEUP_ANY_HIGH。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。