ESP32如何重置与PCNT一起使用的GPIO引脚,以便它们也可以用于EXT1从深度睡眠中唤醒?
ESP32 how to reset GPIO pins used with PCNT, so they can also be used for EXT1 wake up from deep sleep?
我将 4 个 gpio 引脚配置为脉冲计数器来读取霍尔效应液体流量传感器,这工作正常,但是当我尝试使用这些相同的引脚从深度睡眠中唤醒时,睡眠立即结束。如果我不为 PCNT 配置引脚,深度睡眠会按预期工作。
我什至在 RTC 内存中设置了一个标志,使其休眠长达 5 秒,唤醒并且在尝试返回休眠之前不配置 PCNT。它仍然会立即从第二次睡眠中醒来,因此无论这些引脚是什么,都会在深度睡眠中保留下来。
有没有办法在不重置整个设备的情况下恢复这些引脚的默认状态?
答案是,将pcnt_config_t的两个*_gpio_num成员设置为PCNT_PIN_NOT_USED并再次调用pcnt_unit_config:
pcnt_config_t pcnt_config = {
.pulse_gpio_num = PCNT_PIN_NOT_USED,
.ctrl_gpio_num = PCNT_PIN_NOT_USED,
.channel = PCNT_CHANNEL_0;
}
pcnt_unit_config(&pcnt_config);
我将 4 个 gpio 引脚配置为脉冲计数器来读取霍尔效应液体流量传感器,这工作正常,但是当我尝试使用这些相同的引脚从深度睡眠中唤醒时,睡眠立即结束。如果我不为 PCNT 配置引脚,深度睡眠会按预期工作。
我什至在 RTC 内存中设置了一个标志,使其休眠长达 5 秒,唤醒并且在尝试返回休眠之前不配置 PCNT。它仍然会立即从第二次睡眠中醒来,因此无论这些引脚是什么,都会在深度睡眠中保留下来。
有没有办法在不重置整个设备的情况下恢复这些引脚的默认状态?
答案是,将pcnt_config_t的两个*_gpio_num成员设置为PCNT_PIN_NOT_USED并再次调用pcnt_unit_config:
pcnt_config_t pcnt_config = {
.pulse_gpio_num = PCNT_PIN_NOT_USED,
.ctrl_gpio_num = PCNT_PIN_NOT_USED,
.channel = PCNT_CHANNEL_0;
}
pcnt_unit_config(&pcnt_config);