为何未接外设时Raspberry Pi Pico ADC引脚电压不为0?
问题分析与解决
原因
未连接外设时ADC 0-2通道读数异常且波动的核心原因是引脚处于浮空状态:
- Raspberry Pi Pico的ADC0、ADC1、ADC2对应GPIO26、GPIO27、GPIO28,你的代码中对这些引脚执行了
gpio_disable_pulls(i),关闭了内部上下拉电阻,导致引脚没有固定的参考电平。 - 浮空的引脚会像天线一样拾取环境中的电磁干扰(比如板上其他电路的信号、周围的无线辐射、甚至靠近时的人体感应),因此读数会随机波动,且不会稳定在0V。
- 板载温度传感器是内部硬连接到ADC4的,有固定的信号路径和电平参考,所以读数稳定且合理。
解决方法
- 添加上下拉电阻:如果需要测试空载状态下的ADC读数,给对应引脚开启内部上下拉:
// 替换原代码中gpio_disable_pulls(i)的部分 gpio_pull_down(i); // 下拉到0V,读数会接近0 // 或者 gpio_pull_up(i); // 上拉到3.3V,读数会接近3.3V - 实际使用时无需额外操作:当你连接传感器后,传感器会为ADC引脚提供稳定的输入电平,此时浮空问题自然消失,读数会恢复正常。
- 修正输入使能配置:ADC引脚需要保持输入使能状态,建议删除
gpio_set_input_enabled(i, false)这行代码,避免影响ADC采样。
内容的提问来源于stack exchange,提问作者pawrok
相关产品推荐
相关产品推荐

