找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 944|回复: 9
收起左侧

STM32F103ZET6可以用内部参考电压测量ADC吗?

[复制链接]
ID:953770 发表于 2025-2-7 17:47 | 显示全部楼层 |阅读模式
如果我打开内部参考电压ADC_TempSensorVrefintCmd(ENABLE);,那获取的数据是ADCVALUE = 分压/1.2V*4096?
回复

使用道具 举报

ID:404160 发表于 2025-2-9 12:50 | 显示全部楼层
STM32F103ZET6 的 ADC 模块支持使用内部参考电压(VREFINT)来进行测量。内部参考电压是一个精度较高且相对稳定的电压源,其典型值为 1.2V ,在芯片内部与 ADC 的输入通道相连(一般对应 ADC 通道 17)。通过对该通道进行采样,可以得到一个与内部参考电压对应的 ADC 转换值,利用这个值和 ADC 的分辨率等信息,就可以校准 ADC 的测量结果,进而准确测量外部模拟输入电压。
回复

使用道具 举报

ID:879809 发表于 2025-2-9 23:17 | 显示全部楼层
STM32 ADC真正的参考电压是VCCA,而这个引脚在内部实际上是跟VCC连接的,电阻在10~100欧之间,所以ADC读数=(Vin/VCC)*4096。

至于所谓的Vref是个假的,不太准的1.2V电压,你用ADC去读Vref,ADC读数=(Vref/VCC)*4096,根据此公式,认为Vref=1.2V倒推出VCC的值,再用ADC读数=(Vin/VCC)*4096推算Vin电压。
回复

使用道具 举报

ID:1143695 发表于 2025-2-10 10:34 | 显示全部楼层
当你启用内部参考电压(`ADC_TempSensorVrefintCmd(ENABLE);`)时,ADC的输入电压会参考一个固定的内部参考电压(通常为1.2V)。这样,ADC读取的值将与这个内部参考电压进行比例计算。

如果你要根据ADC读取的值来计算电压,可以使用以下公式:

\[
ADCVALUE = \frac{V_{in}}{V_{ref}} \times 4096
\]

其中:

- `V_in` 是输入电压(即你测量的电压)。
- `V_ref` 是参考电压,对于内部参考电压通常为1.2V。
- `4096` 是12位ADC的分辨率(2^12 = 4096)。

所以,如果你测量的电压是 `V_in`,并且使用内部1.2V参考电压,那么你可以通过以下公式来计算对应的ADC值:

\[
ADCVALUE = \frac{V_{in}}{1.2V} \times 4096
\]

因此,获取的数据是一个基于1.2V参考电压的比例值。

如果你要从ADC值计算电压,可以反过来用这个公式:

\[
V_{in} = \frac{ADCVALUE}{4096} \times 1.2V
\]

这样就能得到输入电压。
回复

使用道具 举报

ID:373388 发表于 2025-2-10 18:37 | 显示全部楼层
VCCA是ADC模块电源,不是参考电压;Vref电压精度能不能满足你的需求而定
回复

使用道具 举报

ID:953770 发表于 2025-2-11 11:21 | 显示全部楼层
飞云居士 发表于 2025-2-9 12:50
STM32F103ZET6 的 ADC 模块支持使用内部参考电压(VREFINT)来进行测量。内部参考电压是一个精度较高且相对 ...

我的意思是我不是要用内部参考电压校准电压,我就是想要我的ADC参考的基准电压是1.2V,这样可以吗?但是实际上行不通,我打开了内部参考电压,最终ADC的测量结果还是已3.3V作为参考的基准电压
回复

使用道具 举报

ID:953770 发表于 2025-2-11 11:28 | 显示全部楼层
rundstedt 发表于 2025-2-9 23:17
STM32 ADC真正的参考电压是VCCA,而这个引脚在内部实际上是跟VCC连接的,电阻在10~100欧之间,所以ADC读数= ...

您的意思是反推实际电压吗?我不是想要反推电压,我想要实际1.2V作为参考的基准电压可以的吗?比如我的分压是0.1V,如果以3.3V作为参考基准电压,那算出来的值0.1/3.3*4096 = 124可能有点小,如果直接用1.2V作为参考基准电压,那算出来的值就大点0.1/1.2*4096=341,当然主要原因还是VREF这个电压会随着负载的波动而波动,影响很大
回复

使用道具 举报

ID:879809 发表于 2025-2-12 16:07 | 显示全部楼层
biubiuyou 发表于 2025-2-11 11:28
您的意思是反推实际电压吗?我不是想要反推电压,我想要实际1.2V作为参考的基准电压可以的吗?比如我的分 ...

不可以,STM32 ADC的参考电压必须是VCCA,因为内部已经有小电阻了,实际上就是VCC,硬件已经接死了,天王老子来了,也改不了。
回复

使用道具 举报

ID:122775 发表于 2025-2-13 09:03 | 显示全部楼层
还是外部加个高精度电压基准源比较好。
回复

使用道具 举报

ID:953770 发表于 2025-2-17 08:56 | 显示全部楼层
rundstedt 发表于 2025-2-12 16:07
不可以,STM32 ADC的参考电压必须是VCCA,因为内部已经有小电阻了,实际上就是VCC,硬件已经接死了,天王 ...

好吧,我也觉得不行,谢谢大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表