ADC模数转换器的基础知识

对于GPIO来讲,我们只能读取引脚的高低电平,要么是高电平,要么是低电平,只有两个值,而使用了ADC之后,可以对这个高电平和低电平之间的任意电压进行量化,最终用一个变量表示,读取这个变量,就可以知道引脚的具体电压是多少了

可以理解为ADC就是一个电压表,把引脚的电压读取出来,放进一个变量里,这就是ADC的作用

基础知识

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

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

分辨率:12位逐次逼近型ADC,转换时间:1us转换时间(AD转换是需要时间的,这里就是需要1us,对应就是1MHz)

输入电压范围:0~3.3V,转换结果范围:0~4095

18个输入通道,可测量16个外部和2个内部信号源(内部温度传感器,这个可以用来显示电脑CPU温度,内部参考电压)

规则组和注入组两个转换单元:普通ADC转换,启动一次转换,读一次值,这样循环,STM32比较高级,可以用两个组,一次性一个组,多个值

模拟看门狗自动监测输入电压范围:可以测量光线强度、温度,高于、低于一些阈值这些判断,用这个,可以用,不在这个阈值会申请中断,不用if来判断

STM32F103C8T6 ADC资源:ADC1ADC210个外部输入通道

DMA是个数据转运小帮手

双ADC模式:

四种转换模式:单次转换扫描模式,连续转换非扫描模式

一般选用右对齐

转换时间:

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

STM32 ADC的总转换时间为:

TCONV = 采样时间 + 12.5ADC周期

例如:当ADCCLK=14MHz,采样时间为1.5ADC周期

 TCONV = 1.5 + 12.5 = 14ADC周期 = 1μs

校准

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

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

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

ADC的配置


    //开启RCC时钟,包括GPIO和ADC,另外ADCCLK的分频器也得配置一下
    //配置GPIO,把他配置成模拟输入的模式
    //配置多路开关,把左边的通道接入到右边的规则组里边去
    //配置ADC转换器,在库函数用结构体来配置 
    //开关控制,调用一下ADC_Cmd函数,开启ADC
    //

DMA转运的三个条件,第一:传输计数器不为0,第二个,触发源有信号,第三个:DMA使能

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值