ADC模数转换器

Stm32的ADC是12位的,AD最大值是4095,即2^12-1.

ADC作用:ADC是一个电压表,把引脚的电压值测出来,放在一个变量中。

ADC 模拟-数字转换器。

12位逐次逼近ADC,1us转换时间。量化范围是0~4095。 即2^12-1。

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

18个输入通道,可测量16个外部(16个GPIO口,在引脚上直接接模拟信号,引脚能直接测电压)和2个内部信号源‘PA1’(内部温度传感器“通道16”和内部参考电压“通道17”1.2v基准电压)。

模拟看门狗自动监测输入电压范围。(高于某个阈值,低于某个阈值的判断可以用模拟看门狗自动执行)看门狗可以监测指定的某些通道,当AD高于或低于某个阈值,他就会申请中断,在中断函数中执行相应的操作。

STM32F103C8T6 ADC资源:ADC1,ADC2,10个外部输入通道(最多测量10个外部引脚的模拟信号)

规则组配合DMA。规则通道有16个通道,但规则通道寄存器只能存储一个数据,前15个会被覆盖。需配合DMA转运数据,一般情况下,使用规则组即可。

注入组中最多4通道,可同时存放4个数据。

ADC转换完成,EOC跳转标准位1。

触发控制,分为软件触发和硬件触发。软件触发主要是代码的执行。硬件触发主要是定时器或者外部中断引脚。

无需掌握:双ADC模式。ADC1和ADC2一起工作。这两个可配合组成同步模式、交叉模式等。比如交叉模式ADC1和ADC2交叉地对一个通道进行采样,可进一步提高采样率。

转换模式:

触发通道可重复,可更改。通道数目可设置。

  数据对齐:一般选者右对齐,读取16位寄存器,可直接转换结果。左对齐读取的数据会变多(因为左对齐相当于左移了4次,左移一次结果乘2,4次乘16)

ADC码步骤:

  1. 开启RCC时钟,包括ADC和GPIO的时钟,ADCCLK的分频器需要配置(在rcc.h文件中void RCC_ADCCLKConfig(uint32_t RCC_PCLK6);)。大于14MHZ的稳定性不能保证
  2. 配置GPIO,把需要的GPIO配置成模拟输入模式(gpio口可在PA0和PB1之间任意选择)
  3. 配置多路开关。
  4. 配置ADC转换器(在库函数里,用结构体配置)。配置下图。//中断和看门狗

ADC1是在APB2上的时钟。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

基本素质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值