文章目录
- ADC(Analog-Digital Converter)模拟-数字转换器
- AD转换的步骤 与 时间
- stm32ADC的转换模式
- ADC框图
- stm32的ADC引脚
- 配置stm32ADC的步骤
ADC(Analog-Digital Converter)模拟-数字转换器
- ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁
- (分辨率)12位逐次逼近型ADC,(转换频率)1us转换时间
- 输入电压范围:0 ~ 3.3V,转换结果范围:0~4095
- 18个输入通道,可测量16个外部和2个内部信号源(内部温度传感器与基准电压)
- 规则组和注入组两个转换单元(增强功能)
- 模拟看门狗自动监测输入电压范围
基准电压决定了输入电压的范围
STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道
AD转换的步骤 与 时间
AD转换的步骤:采样,保持,量化,编码 [ADC]采样时间和转换时间
STM32 ADC的总转换时间为:
TCONV = 采样时间 + 12.5个ADC周期
- (其中采样时间可调整,越长越准确)
- (为什么转换时间是12.5个ADC周期?请参考上面视频) stm32是12位ADC,要比较12次比较过程动画
例如:当ADCCLK=14MHz,采样时间为1.5个ADC周期
TCONV = 1.5 + 12.5 = 14个ADC周期 = 1μs
stm32ADC的转换模式
- 连续?在一次扫描完成后是否继续。
- 扫描?
扫描与否,就是用不用多通道(处理多个通道)。不用就非扫描
ADC框图
输入部分:支持多路输入,分为两个组输入AD转换器。
分为注入组与规则组 举例子说明
- 注入组
- 可最多选择4个通道
- 注入组有四个数据寄存器,可同时储存
- 规则组
- 可最多选择16个通道
- 注意到规则组只有一个数据寄存器,新数据会覆盖旧数据
stm32的ADC引脚
配置stm32ADC的步骤
1. 开启rcc时钟(ADC,与gpio)
2. 配置ADC的是时钟分频
3. 配置gpio为模拟输入模式
4. 配置输入开关(点菜,把菜(各个通道)点在菜单(规则组或注入组)中)
- 选择某个通道,并配置各通道顺序
- 配置采样时间
5. 配置ADC转换器(转换方式等)
- 是否开启扫描模式
- 是否开启连续模式
- 配置两个ADC的状态(Reg组或Ing组)
- 配置数据对齐方式
- 配置通道数量
- 配置ADC转换触发方式(软件或硬件触发) 如何实现硬件触发 | 库函数解释
7. 开关控制 ADC_cmd() 使能ADC
8. 校准 校准的函数介绍
- 函数用法
- 复位校准与开始校准函数介绍
- ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在
校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换
中每个电容器上产生的误差。
9. 软件触发转换,读取转换值
uint16_t AD_GetValue(void)
{ADC_SoftwareStartConvCmd(ADC1, ENABLE);while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); //等待ADC采样(55个周期) 转换 (12.5个周期)return ADC_GetConversionValue(ADC1);
}