stm32学习_AD

本文介绍了ADC的基本概念,包括12位逐次逼近型ADC的特性,如转换时间和输入电压范围。在STM32F103C8T6微控制器中,详细阐述了ADC1和ADC2的资源,转换模式,触发控制以及数据对齐方式。还提到了转换时间的计算和内置的校准功能,建议每次上电后进行校准以提高精度。最后,概述了启用ADC的程序实现步骤,包括时钟配置、GPIO初始化和软件触发转换。

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

学习目标:

学习AD单通道和AD多通道


学习内容:

ADC的简介

1.ADC(Analog-Digital Converter)模拟-数字转换器

2.ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁

3.12位逐次逼近型ADC,1us转换时间 输入电压范围:0~3.3V,转换结果范围:0~4095 18个输入通道,可测量16个外部和2个内部信号源

逐次逼近型ADC: 

4.规则组和注入组两个转换单元 模拟看门狗自动监测输入电压范围

5.STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道

ADC框图

 

时钟

ADC的基本结构图

规则组的4种2转换模式

1.单次转换,非扫描模式(每次转化都需要触发)

2. 单次转换,扫描模式

3.连续转换,非扫描模式(只需要触发一次)

4.连续转换,扫描模式

触发控制

数据对齐(因为ADC是12位的,而我们的寄存器是16位的,所以需要数据对齐) 

 通常使用右对齐

 转换时间

AD转换的步骤:采样,保持,量化,编码

STM32 ADC的总转换时间为:     TCONV = 采样时间 + 12.5个ADC周期

例如:当ADCCLK=14MHz,采样时间为1.5个ADC周期     TCONV = 1.5 + 12.5 = 14个ADC周期 = 1μs

校准:

ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差

建议在每次上电后执行一次校准

启动校准前, ADC必须处于关电状态超过至少两个ADC时钟周期

程序实现:

1.开启时钟gpio,adc

2.adc的时钟需要分频RCC_ADCCLKConfig

3.初始化gpio,模式要选择AIN(模拟输入)

4.选择规则组的通道(ADC_RegularChannelConfig)

5.初始化ADC(ADC_Ini)

5.adc使能(.ADC_CMD)

6.adc校准

ADC_ResetCalibration( ADC1);
    while(ADC_GetResetCalibrationStatus( ADC1)==SET);//0为复位完成
    ADC_StartCalibration( ADC1);
    while(ADC_GetCalibrationStatus( ADC1)==SET);//0为校准完成
    7.触发转换(ADC_SoftwareStartConvCmd)(如果是连续触发就只需要触发一次,单次触发每次都要需要触发)(连续状态下的标志位会自己判断,所以就不需要自己判断,是否转换成功)

8.获取标志位状态 ADC_GetFlagStatus( ADC1, ADC_FLAG_EOC)

9.adc获取转换值(ADC_GetConversionValue)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值