STM32f1xx单片机ADC

ADC介绍:
ADC,Analog-to-DigitalConverter的缩写,指模/数转换器或者模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。

STM32F103ZET 包含有 3 个 ADC。一共支持23个通道,包括21个外部和2个内部信号源;但是每个ADC控制器最多只可以有18个通道,包括16个外部和2个内部信号源。 最大的转换速率为 1Mhz,当ADC 的时钟超过 14M时,结果准确度会下降。ADC 的转换分为 规则通道组和注入通道组。规则通道是正常运行的程序,而注入通道相当于中断,注入通道是可以打断程序的执行,也可以打断规则通道的转换

ADC转换方式:
单次转换、连续转换、扫描转换模式。
单次转换模式:
单次转换模式下,ADC只执行一次转换。该模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。
连续转换模式
在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2寄存器上的ADON位启动,此时CONT位是1。
扫描模式
此模式用来扫描一组模拟通道。扫描模式可通过设置ADC_CR1寄存器的SCAN位来选择。一旦这个位被设置,ADC扫描所有被ADC_SQRX寄存器(对规则通道)或ADC_JSQR(对注入通道)选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。如果设置了CONT位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。
ADC相关配置寄存器
ADC控制寄存器1(ADC_CR1)
作用:设置扫描模式、中断允许(转换结束、注入转换结束、模拟看门狗)、双模式选择(一般选用独立模式)等。
ADC控制寄存器2(ADC_CR2)
作用:设置数据对齐方式、连续转换位、ADC启动位、外部触发转换(一般选用软件转换SWSTART、JSWSTART)。
ADC采样时间寄存器x(ADC_SMPRx)
作用:设置ADC各通道的采样时间。
ADC注入通道数据偏移寄存器x (ADC_JOFRx)
作用:设置ADC注入通道数据偏移。
ADC规则序列寄存器x(ADC_SQRx)
作用:设置规则通道序列长度、对应序列中各个转换的通道编号(最多16个)。
ADC注入数据寄存器x(ADC_JDRx)
作用:存放ADC注入转换的数据。
ADC规则数据寄存器(ADC_DR)
作用:存放ADC规则转换的数据。
ADC状态寄存器(ADC_SR)
作用:存放ADC转换过程中的各种状态位

配置步骤:
1)开启 PA 口时钟和 ADC1 时钟,设置 PA1 为模拟输入。
2)复位 ADC1,同时设置 ADC1 分频因子。
3)初始化 ADC1 参数,设置 ADC1 的工作模式以及规则序列的相关信息。
4)使能ADC并校准
5)读取ADC的值

发布了25 篇原创文章 · 获赞 8 · 访问量 1982

猜你喜欢

转载自blog.csdn.net/hltx666/article/details/104215085