请问,为什么我在使用野火stm32最小系统板做ADC实验的时候,当GPIO的模拟输入通道没有接入的时候,ADC_DR仍然能获取到值,并且获取到的值还很大。
上图是我的stm32cube设置
上图是我获取ADC_DR寄存器的值的代码
上图是我Main函数里While循环前的ADC校准和循环代码
参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。
在STM32的ADC实验中,如果您没有将任何外部模拟信号接入ADC输入通道,理论上应该得到的是电源电压(VDDA)与参考电压之间的某个中间值,而不是一个很大的数值。这是因为即使未连接外部信号,ADC通道内部仍然存在一定的输入阻抗,它会拾取噪声、漏电流或电源线上的干扰。此外,ADC也可能因为硬件设计的原因,在未接外部信号时表现出非零基准偏移。
您提到获取到的值很大,可能原因有:
请检查以下几点来解决问题:
上图无法显示,但您可以详细描述一下STM32Cube的配置项以及您在Main函数中关于ADC配置和采集的具体代码段,这样有助于更准确地定位问题所在。