[英]Is void setup() code wiped out when deep sleep is used in esp32
[英]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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.