STM32F407 ADC 个人笔记
1. ADC概述(STM32F4xx系列)
- 3 个 ADC
- 可分别独立使用
- 也可使用双重/三重模式(提高采样率)
- 2 个通道组
- 规则通道:相当于正常运行的程序
- 注入通道:相当于中断(可以打断规则通道的转换)
- 转换模式分为
- 单次、连续、扫描、间断模式
- 位数
- 12位模拟数字转换器
- 结果左对齐或右对齐,存在16位数据寄存器中
2. 规则通道 & 单次转换模式
过程
转换结束时:
- 转换结果将被存在 ADC_DR 寄存器中
- EOC(转换结束)标志将被置位
- 如果设置了 EOCIE,则会产生中断
要配置哪些
是否用扫描模式,分辨率,对齐方式,外部触发使能设置,开始转换,输入时钟分频,多重模式选择,采样时间
用到的寄存器
1)ADC控制寄存器(ADC_CR1 和 ADC_CR2)
ADC_CR1
ADC_CR1 的 SCAN 位
- 该位用于设置扫描模式
- 如果设置为 1,则 使用扫描模式,如果为 0,则关闭扫描模式。
- 由软件设置和清除
- 在扫描模式下,由 ADC_SQRx或 ADC_JSQRx 寄存器选中的通道被转换。
- 如果设置了 EOCIE 或 JEOCIE,只在最后一个通道转换完毕后才会产生EOC 或 JEOC 中断。
ADC_CR1[25:24]
用于设置 ADC 的分辨率

ADC_CR2
- ADON 位用于开关 AD 转换器
- CONT 位用于设置是否进行连续转换,我们使用单次转换,所以 CONT 位必须为 0。
- ALIGN 用于设置数据对齐,我们使用右对齐,该位设置为 0。
- EXTEN[1:0]用于规则通道的外部触发使能设置,我们这里使用的是软件触发,即不使用外部触发
SWSTART 位用于开始规则通道的转换,我们每次转换(单次转换模式下)都需要向该位写
1。2)ADC 通用控制寄存器(ADC_CCR)
- TSVREFE 位是内部温度传感器和 Vrefint 通道使能位,内部温度传感器我们将在下一章介绍,这里我们直接设置为 0
- ADCPRE[1:0]用于设置 ADC 输入时钟分频
- 00~11 分别对应 2/4/6/8 分频
- STM32F4 的 ADC 最大工作频率是 36Mhz, 而 ADC 时钟(ADCCLK)来自 APB2,APB2 频率一般是 84Mhz,所以我们一般设置 ADCPRE=01, 即 4 分频,这样得到 ADCCLK 频率为 21Mhz,不超过36的最大频率。
MULTI[4:0]用于多重 ADC 模式选择,本章我们仅用了 ADC1(独立模式),并没用到多重 ADC 模式,所以设置这 5 个位为 0 即可。
3) ADC 采样时间寄存器(ADC_SMPR1 和 ADC_SMPR2)
- 这两个寄存器 用于设置通道 0~18 的采样时间
- 每个通道占用 3 个位。
- 对于每个要转换的通道,采样时间建议尽量长一点
- 以获得较高的准确度
- 但是这样会降 低 ADC 的转换速率。
- ADC 的转换时间可以由以下公式计算
- Tcovn=采样时间+12 个周期 , 其中:
- Tcovn 为总转换时间
- 采样时间是根据每个通道的 SMP 位的设置来决定的
例如, 当 ADCCLK=21Mhz 的时候,并设置 3 个周期的采样时间,则得到Tcovn=3+12=15 个周期 =0.71us。
4)ADC 规则序列寄存器(ADC_SQR1~3)
5)ADC 规则数据寄存器(ADC_DR)
- 规则序列中的 AD 转化结果都将被存 在这个寄存器里面
- 而注入通道的转换结果被保存在 ADC_JDRx 里面
该寄存器的数据可以通过 ADC_CR2 的 ALIGN 位设置左对齐还是 右对齐。
6)ADC 状态寄存器(ADC_SR)
EOC 位,我们通过判断该位来决定是否此次规则通道的 AD
转换已经完成, 如果该位位 1,则表示转换完成了, 就可以从 ADC_DR 中读取转换结果,否则
等待转换完成。
STM32F40x系列ADC外部通道和引脚对应关系

STM32F407 ADC 个人笔记的更多相关文章
- STM32F407 ADC DMA 采样实验
转载:http://home.eeworld.com.cn/my/space-uid-361439-blogid-239703.html STM32F407ADC采样实验 热度 1已有 5472 次阅 ...
- STM32F407+STemwin学习笔记之STemwin移植补充Touch
原文地址:http://www.cnblogs.com/NickQ/p/8857213.html 环境:keil5.20 STM32F407ZGT6 LCD(320*240) STemwin:S ...
- STM32F407+STemwin学习笔记之STemwin移植
原文链接:http://www.cnblogs.com/NickQ/p/8748011.html 环境:keil5.20 STM32F407ZGT6 LCD(320*240) STemwin:S ...
- STM32F407 SPI 个人笔记
概述 SPI ,Serial Peripheral interface,串行外围设备接口 全双工,同步的通信总线,四根线 主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器 ...
- STM32F407 I2C 个人笔记
源代码;https://github.com/YuQiao0303/STM32F407-Examples/tree/master/24.IIC 概述 I2C (IIC, Inter-Integrate ...
- STM32F407 DAC 个人笔记
DAC框图 VDDA:模拟电源输入 VSSAL:模拟电源接地输入 Vref+:正模拟参考电压输入 -------------- DORx:输入数字寄存器 DAC_OUT:模拟输出通道 DAC_OUT1 ...
- STM32 ADC 测电压
1. STM32F103 ADC 本例使用STM32F103芯片的PA1引脚测试模拟输入的电压值. 查看文档<STM32F103X.pdf>第31页,引脚定义图: 得知PA1使用ADC1的 ...
- DSP28377S - ADC学习编程笔记
DSP28377S - ADC学习编程笔记 彭会锋 2016-08-04 20:19:52 1 ADC类型导致的配置区别 F28377S的ADC类型是Type 4类型,我的理解是不同类型的ADC采 ...
- stm32寄存器版学习笔记07 ADC
STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源.各通道的A/D转换可以单次.连续.扫描或间断模式执行. 1.通道选择 stm32把A ...
随机推荐
- 【C#】.net 导出Excel功能
将DataSet对象导出成Excel文档 一.不带格式控制 void btnExport_Click(object sender, EventArgs e) { IList<string> ...
- Spring框架学习——AOP的开发
一.AOP开发中的相关术语. ——JoinPoint(连接点):指那些可以被拦截到的点.比如增删改查方法都可以增强,这些方法就可以被称为是连接点. ——PointCut:切入点,真正被拦截的点,指对哪 ...
- Mongodb JAVA API
连接mongodb 1.连接一个mongodb ); 2.连接mongodb集群 MongoClient mongoClient = ), new ServerAddress("localh ...
- 【原创】微信公众号与HTML 5混合模式揭秘4——jssdk调用微信扫一扫
微信公众号与HTML 5混合模式揭秘1——如何部署JSSDK 微信公众号与HTML 5混合模式揭秘2——分享手机相册中照片 微信公众号与HTML 5混合模式揭秘3——JSSDK获取地理位置 在JS ...
- uvm_reg_defines——寄存器模型(四)
文件: src/marcos/uvm_reg_defines 类: 无 该文件是寄存器模型src/reg/* 文件对于的宏文件,主要定义了寄存器地址位宽,寄存器数据位宽,字节的大小.计算机从最初的8, ...
- java 核心技术卷一笔记 6 .1接口 lambda 表达式 内部类
6.1 接口不是类,是对类的一组需求的描述,这些类需要遵守接口描述的统一格式进行定义.例如:Arrays类中sort方法(可以对对象数组进行排序)前提是对象所属的类必须实现了Comparable 接口 ...
- Integer比较浅析
//Integer 型比较假如是使用 == ,只能比较数值为-128~127数值; 在这个范围内使用的是自动装箱拆箱: //.intValue()使用这个需要确认属性不为null; //equals( ...
- HDU 6069 Counting Divisors(区间素数筛法)
题意:...就题面一句话 思路:比赛一看公式,就想到要用到约数个数定理 约数个数定理就是: 对于一个大于1正整数n可以分解质因数: 则n的正约数的个数就是 对于n^k其实就是每个因子的个数乘了一个K ...
- url编码和解码平台
http://meyerweb.com/eric/tools/dencoder/
- spark 省份次数统计实例
//统计access.log文件里面IP地址对应的省份,并把结果存入到mysql package access1 import java.sql.DriverManager import org.ap ...