嵌入式学习之ADC(ADC_SQRx寄存器怎样理解?)

1.先来说明ADC_SQRx寄存器是干什么的?

答:通俗且不严格的理解就是设定你所有的ADC通道的转换顺序优先级的。

2.再来说ADC_SQRx寄存器中天的内容是什么?

答:填得是转换通道的编号(0~17)。因为一共有18个通道且编号为0-17

3.举例子说明:

(1)ADC1->SQR1& = 0<<16
把0填入SQR1的第16位,即把编号0(即为通道0)填入了第16个转换的位置,从而使得通道0的转换被放在了最后。
在这里插入图片描述(2)ADC1->SQR3 |=1<<0
把1填入SQR1的第1位,即把编号1(即为通道1)填入了第1个转换的位置,从而使得通道1的转换被放在了第一个。
在这里插入图片描述

4.ADC的本身学习:

(1)STM32 的 ADC 是 12 位逐次逼近型的模拟数字转换器。
它有 18 个通道,可测量 16 个外部和 2 个内部信号源。
在这里插入图片描述
(2)通道的 A/D 转换可以单次、连续、扫描或间断模式执行
用ADC1 规则通道的顺序为CH0,CH1,CH2,CH3,
不启动SCAN模式
①在单次转换模式下:
启动ADC1,则开始转换CH0(ADC_SQR的第一通道)转换 完成后停止,等待ADC的下一次启动,继续从ch0开始转换
②在连续转换模式下:
启动ADC1,则开始转换CH0(ADC_SQR的第一通道)转换完成后回到第一步,继续转换ch0

启动SCAN模式下
①在单次转换模式下:
启动ADC1,则

1.开始转换CH0、

2.转换完成后自动开始转换CH1

3.转换完成后自动开始转换CH2

4.转换完成后自动开始转换CH3

5.转换完成后停止,等待ADC的下一次启动下一次ADC启动后从ch0开始转换

②在连续转换模式下:

扫描二维码关注公众号,回复: 12768468 查看本文章

启动ADC1,则

1.开始转换CH0

2.转换完成后自动开始转换CH1

3.转换完成后自动开始转换CH2

4.转换完成后自动开始转换CH3

5.转换完成后返回第一步,继续从ch0转换
(3)ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。这是可以设置的。
(4)模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。
(5)不要让 ADC 的时钟超过 14M,否则将导致结果准确度下降。
(6)STM32 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。
(7)在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道 8、通道 2、通道 2、通道 0、通道 2、通道 2、通道 15。
(8)注入通道的可以有触发注入:例如外部事件触发(定时器捕获,EXTI 线等)以及软件源触发事件(寄存器某个位触发)
自动注入(设置 JAUTO 位,在规则组通道之后,注入组通道被自动转换。)
(9)可通过寄存器设置通道采样时间
(10)转换结束、注入转换结束和发生模拟看门狗事件时产生中断

猜你喜欢

转载自blog.csdn.net/weixin_44142774/article/details/106548293