ESP32如何重置与PCNT一起使用的GPIO引脚,以便它们也可以用于从深度睡眠唤醒EXT1?

时间:2019-01-22 21:51:46

标签: c esp32

我将4个gpio引脚配置为脉冲计数器,以读取霍尔效应液体流量传感器,效果很好,但是当我尝试使用这些相同的引脚从深度睡眠中唤醒时,睡眠立即结束。如果我不配置PCNT的引脚,深度睡眠将按预期工作。

我什至可以在RTC内存中设置一个标志,以使其休眠长达5秒钟,然后唤醒,并且在尝试返回睡眠之前不配置PCNT。它仍然会立即从第二次睡眠中唤醒,因此在深度睡眠过程中,有关这些引脚的任何信息都将保留。

是否可以在不重置整个设备的情况下恢复这些引脚的默认状态?

1 个答案:

答案 0 :(得分:0)

答案是,将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);