STM32F103_ADC电压采集

ADC寄存器
在这里插入图片描述

1 、STM32 ADC 简介

STM32 的 ADC 是 12 位逐次逼近型的模拟数字转换器。 它有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的
A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。
模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。
STM32F103 系列最少都拥有 2 个 ADC,我们选择的 STM32F103ZET 包含有 3 个 ADC。STM32 的 ADC 最大的转换速率为 1Mhz,也就是转换时间为 1us(在 ADCCLK=14M,采样周期为 1.5 个 ADC 时钟下得到),不要让 ADC 的时钟超过 14M,否则将导致结果准确度下降。
STM32 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之后,规则通道才得以继续转换。

简单来说STM32f103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。ADC的输入时钟不得超过14MHz,其时钟频率由PCLK2分频产生(72MHZ)

2 ADC功能框图讲解

在这里插入图片描述在这里插入图片描述

引脚说明
在这里插入图片描述
2.0.电压输入范围

ADC所能测量的电压范围就是VREF- ≤ VIN ≤ VREF+,把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接3V3,得到ADC 的输入电压范围为: 0~3.3V。

2.1、输入通道
ADC的信号输入就是通过通道来实现的,信号通过通道输入到单片机中,单片机经过转换后,将模拟信号输出为数字信号。STM32中的ADC有着18个通道,其中外部的16个通道已经在框图中标出,如下:
在这里插入图片描述

这16个通道对应着不同的IO口
在这里插入图片描述
外部的16个通道在转换时又分为规则通道和注入通道,其中规则通道最多有16路,注入通道最多有4路(注入通道貌似使用不多),下面简单介绍一下两种通道:
规则通道
规则通道顾名思义就是,最平常的通道、也是最常用的通道,平时的ADC转换都是用规则通道实现的。
注入通道
注入通道是相对于规则通道的,注入通道可以在规则通道转换时,强行插入转换,相当于一个“中断通道”吧。当有注入通道需要转换时,规则通道的转换会停止,优先执行注入通道的转换,当注入通道的转换执行完毕后,再回到之前规则通道进行转换。

在这里插入图片描述
在这里插入图片描述

  • 32
    点赞
  • 336
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: STM32F103R6是一款基于ARM Cortex-M3内核的单片机,具有多个模拟数字转换器(ADC)通道,可用于电压信号的采集。 首先,我们需要在STM32F103R6上配置ADC模块。首先选择要使用的ADC通道,并设置ADC模式(单通道或扫描模式)。接下来,我们可以设置ADC的采样时间和采样顺序。采样时间决定了ADC在转换过程中将信号采样多少次,采样顺序确定了ADC转换的顺序。 接下来,我们可以初始化ADC模块并对其进行配置。我们可以设置ADC的分辨率(8位、10位或12位)、工作模式(单次转换或连续转换)、对齐方式(左对齐或右对齐)等。我们还可以配置DMA(直接内存访问)来自动传输ADC转换结果。 当ADC模块配置好后,我们可以开始进行电压采集。首先,我们需要启动ADC模块,这将启动转换过程。然后,我们可以使用适当的函数来读取ADC通道的转换结果。转换结果将根据所选的分辨率进行缩放,以获得正确的电压值。 最后,根据应用需求,我们可以对电压进行进一步的处理。例如,我们可以使用电压值进行数据显示、数据记录、控制逻辑等。在处理电压值时,我们还可以使用运算和校准来提高测量的准确性和精度。 总之,使用STM32F103R6的ADC模块,我们可以轻松地进行电压信号的采集和处理,为应用程序提供准确和可靠的电压测量功能。 ### 回答2: STM32F103R6是一款32位ARM Cortex-M3内核的微控制器,具有多个模拟数字转换器(ADC)通道,可用于采集电压信号。 STM32F103R6的ADC模块可以将物理世界中的模拟电压信号转换为数字信号,并通过内部控制器进行处理和分析。它可以采集范围在0至3.3V之间的电压信号。 在使用STM32F103R6进行ADC采集电压时,首先需要初始化ADC模块,并配置所需的通道和采样率。通常需要设置ADC时钟频率、采样时间和参考电压等参数。 然后,可以通过编程指令启动ADC的转换过程。转换过程中,ADC会将电压信号进行采样和转换,并将结果以数字形式存储在寄存器中。用户可以通过读取这些寄存器来获取转换结果。 另外,STM32F103R6还提供了中断和DMA两种方式来处理ADC转换完成的事件。用户可以根据需要选择合适的方式来获取采集到的电压值。 需要注意的是,由于ADC转换的精度有限,可能存在一定的误差。因此,在实际应用中,可能需要进行校准和调整以提高测量的准确性。 总而言之,通过STM32F103R6的ADC模块,我们可以方便地进行电压信号的采集,为后续的数据处理和分析提供基础。这为电子设计和物联网等领域的应用提供了很大的便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梨花落-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值