ADC模数转换

ADC(Analog-DiaitalConverter)模拟-数字转换器
ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,lus转换时间
输入电压范围:0~3.3V,转换结果范围:0~409518个输入通道,可测量16个外部和2个内部信号源规则组和注入组两个转换单元
模拟看门狗自动监测输入电压范围.

逐次逼近型ADC

先确定通道INx传给地址锁存,确定后DAC通过二分法不断获取数值与待测电压比较,相近时确定ADC,并将转化的数值存在SAR中。EOC为结束标志。

ADC框图:

ADC输入通道:

 

转换模式:

 

 

 

 

规则组只有一个16位,所以ADC最好搭配DMA一起使用。

ADC触发控制:

 

数据对齐: 

 

ADC转换时间 

 · AD 转换的步骤:采样,保持,量化,编码
·STM32 ADC的总转换时间为:
  TcoNv=采样时间+12.5个ADC周期
·例如:当ADCCLK=14MHz,采样时间为1.5个ADC周期
  Tconv=1.5+12.5=14个ADC周期=1μs

ADC校准

·ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的
变化而造成的准精度误差。校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差
建议在每次上电后执行一次校准
·启动校准前,ADC必须处于关电状态超过至少两个ADC时钟周期

 第一步:开启RCC时钟包括GPIO和ADC的时钟。ADCCLK分频器也需要配置一下

第二步:配置GPIO,把需要用的GPIO配置成模拟输入的模式。

第三步:配置多路开关,把左边的通道接入到右边的规则组列表中。

第四步:配置ADC转换器。

ADC单通道转换:

如果为转换非扫描模式,可将AD_Getvalue()函数只留下一个return........;,其余的转移到AD_Init()中去。

AD.c

main.c

 

AD多通道转换

AD.c 

 

 main.c

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值