▲-猪-▼Ψ 发表于 2016-11-9 21:52:24

STM32L053C8,内部ADC,采样到ADC_IN17内部基准为1.65V,

我用到官方开发板+移植的官方库文件,如果一个工程中,只有ADC外设,那么17通道采样结果是1050左右,符合芯片手册说的1.2V基准电压,。

但当我把这个官方例程移植进入我的工程文件后,再次开启AD中断检测17路电压,得到的是2048,相当于1.65V,而且数据稳定,

我把自己的工程文件的主频改到2M。依然如此。
当主频变为16M,则系统第一次采样是1050~1.2V,此后采样均为2048~1.65V,

请问大家知道是什么原因导致的基准电压变化吗?

▲-猪-▼Ψ 发表于 2016-11-16 10:59:43

调试好了,因为,我调用了adc start_it,不用的时候,没有关闭,导致出错,如果每次用完都关闭,就不会出问题了

weigr 发表于 2016-11-9 22:15:26

初学飘过~

▲-猪-▼Ψ 发表于 2016-11-10 07:09:09

这是我的GPIO,配置引脚

peter001 发表于 2016-11-10 08:39:48

好像芯片内部基准本身偏差就比较大

andrewz 发表于 2016-11-10 08:54:36

这是个问题,期待LZ找到原因.

:lol

▲-猪-▼Ψ 发表于 2016-11-10 18:20:09

重新补充一下GPIO端口设置列表吧

▲-猪-▼Ψ 发表于 2016-11-10 18:24:00







▲-猪-▼Ψ 发表于 2016-11-10 18:25:23

帖子不要沉啊~~~~

xmshao 发表于 2016-11-10 22:50:47

这个VREFINT是固定的,但并不代表对它测试ADC的值就是固定的。

它的值跟你的ADC模块的参考电压有关系。这里ADC模块的参考电压是VDDA。 如果VDDA不同,
测得ADCvrefint的值也会不同。

▲-猪-▼Ψ 发表于 2016-11-11 06:50:43

我尝试了,用同样的输入电压3.3,但在复杂的工程中,依旧无法得到正确的数据,在简单工程中,就可以得到1.2v,这是什么地方出错了呢?
页: [1] 2
查看完整版本: STM32L053C8,内部ADC,采样到ADC_IN17内部基准为1.65V,