我在使用原型 ESP32 设备板进行 PCNT 脉冲计数时遇到了一些困难。
我有一个水位传感器(型号 D2LS-A),它通过发送到 GPIO32(20Hz、50Hz、100Hz、200Hz、400Hz)的方波信号的频率来发出状态信号。
遗憾的是,PCNT 计数器保持在 0。
为了排除故障,我尝试将 GPIO32 置于 ADC 模式(衰减 0、10 位模式)以读取原始信号(每秒对其进行多次采样),并且得到了我期望的值(0-1023)。但是使用数字 GPIO 模式尝试同样的事情,它总是返回 0,在所有样本中从不返回 1。
由于 PCNT ESP IDF 组件依赖于以数字方式读取引脚,因此计数器的增量永远不会超过 0。
所以我遇到的真正问题是:为什么 ADC 读数(0-1023 之间)没有像人们期望的那样转换为 0-1 的数字读数?