ADC详解

本文详细介绍了STM32的ADC模块,包括12位逐次逼近型ADC的特性,如18个通道、多种转换模式和中断功能。STM32的ADC转换分为规则通道和注入通道,且转换时间与系统时钟相关。还列举了多个关键寄存器,如控制寄存器、采样事件寄存器、规则序列寄存器等,并提供了ADC程序设计的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关实例:
ADC的单通道转换
ADC的多通道转换


一、模拟/数字转换(ADC)

1. ADC介绍

12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。
ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。

STM32 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。规则通道相当于你正 常运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之后,规则通道才得以继续转换。
在这里插入图片描述

2. 主要特征

● 12位分辨率
● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断
● 单次和连续转换模式
● 从通道0到通道n的自动扫描模式
● 自校准
● 带内嵌数据一致性的数据对齐
● 采样间隔可以按通道分别编程
● 规则转换和注入转换均有外部触发选项
● 间断模式
● 双重模式(带2个或以上ADC的器件)
● ADC转换时间:
─ STM32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)
─ STM32F101xx基本型产品:时钟为28MHz时为1μs(时钟为36MHz为1.55μs)
─ STM32F102xxUSB型产品:时钟为48MHz时为1.2μs
─ STM32F105xx和STM32F107xx产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)
● ADC供电要求:2.4V到3.6V
● ADC输入范围:VREF- ≤ VIN ≤ VREF+
● 规则通道转换期间有DMA请求产生。

3. 功能描述

下图为一个ADC模块的框图
在这里插入图片描述
引脚说明:
在这里插入图片描述
STM32 的 ADC 通道与GPIO 对应表:
在这里插入图片描述

二、ADC寄存器介绍

1. 控制寄存器(ADC_CR1 和 ADC_CR2)

ADC_CR1 :
地址偏移:0x04
复位值:0x0000 0000
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ADC_CR2 :
地址偏移:0x08
复位值:0x0000 0000
在这里插入图片描述
在这里插入图片描述

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

2. 采样事件寄存器(ADC_SMPR1 和 ADC_SMPR2)

ADC_SMPR1:
地址偏移:0x0C
复位值:0x0000 0000
在这里插入图片描述
ADC_SMPR2:
地址偏移:0x10
复位值:0x0000 0000
在这里插入图片描述

3. 规则序列寄存器(ADC_SQR1~3)

ADC_SQR1:
地址偏移:0x2C
复位值:0x0000 0000
在这里插入图片描述
ADC_SQR2:
地址偏移:0x30
复位值:0x0000 0000
在这里插入图片描述
ADC_SQR3:
地址偏移:0x34
复位值:0x0000 0000
在这里插入图片描述

4. 规则数据寄存器(ADC_DR)

地址偏移:0x4C
复位值:0x0000 0000
在这里插入图片描述

5. 状态寄存器(ADC_SR)

地址偏移:0x00
复位值:0x0000 0000
在这里插入图片描述

6. 采样时间寄存器(ADC_SMPR1~2)

ADC_SMPR1:
地址偏移:0x0C
复位值:0x0000 0000
在这里插入图片描述
ADC_SMPR2:
地址偏移:0x10
复位值:0x0000 0000
在这里插入图片描述

7. 注入通道数据偏移寄存器x (ADC_JOFRx)(x=1…4)

地址偏移:0x14-0x20
复位值:0x0000 0000
在这里插入图片描述

8. 看门狗高阀值寄存器(ADC_HTR)

地址偏移:0x24
复位值:0x0000 0000
在这里插入图片描述

9. 看门狗低阀值寄存器(ADC_LRT)

地址偏移:0x28
复位值:0x0000 0000
在这里插入图片描述

10. ADC注入序列寄存器(ADC_JSQR)

地址偏移:0x38
复位值:0x0000 0000
在这里插入图片描述

11. 注入数据寄存器x (ADC_JDRx) (x= 1…4)

地址偏移:0x3C – 0x48
复位值:0x0000 0000
在这里插入图片描述

三、ADC程序设计

这里我以ADC1单通道转换为例,设计思路如下:

  1. 开启 PA 口时钟和 ADC1 时钟,设置 PA1 为模拟输入。
  2. 复位 ADC1,同时设置 ADC1 分频因子。
  3. 初始化 ADC1 参数,设置 ADC1 的工作模式以及规则序列的相关信息
  4. 使能 ADC 并校准。
  5. 读取 ADC 值。

总结

以上是对模拟/数字转换(ADC)的详情介绍,下节我将带大家仔细的去配置ADC转换实验。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

比特冬哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值