2024年3月23日发(作者:)

word格式-可编辑-感谢下载支持

STM32 ADC电压测试实验报告

一、实验目的

1.了解STM32的基本工作原理

2. 通过实践来加深对ARM芯片级程序开发的理解

3.利用STM32的ADC1通道0来采样外部电压值值,并在TFTLCD模块上显示出来

二、实验原理

STM32拥有1~3个ADC,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM32

的ADC是12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号

源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方

式存储在16位数据寄存器中

接下来,我们介绍一下执行规则通道的单次转换,需要用到的ADC寄存器。第一个要介绍的是

ADC控制寄存器(ADC_CR1和ADC_CR2)。ADC_CR1的各位描述如下:

ADC_CR1的SCAN位,该位用于设置扫描模式,由软件设置和清除,如果设置为1,则使用扫描

模式,如果为0,则关闭扫描模式,ADC_CR1[19:16]用于设置ADC的操作模式

我们要使用的是独立模式,所以设置这几位为0就可以了。

第二个寄存器ADC_CR2,该寄存器的各位描述如下:

word格式-可编辑-感谢下载支持

ADCON位用于开关AD转换器。而CONT位用于设置是否进行连续转换,我们使用单次转换,所以CONT

位必须为0。CAL和RSTCAL用于AD校准。ALIGN用于设置数据对齐,我们使用右对齐,该位设置为0。

EXTSEL[2:0]用于选择启动规则转换组转换的外部事件,我们这里使用的是软件触发(SWSTART),所以

设置这3个位为111。

第三个要介绍的是ADC采样事件寄存器(ADC_SMPR1和ADC_SMPR2),这两个寄存器用于设置通道

0~17的采样时间,每个通道占用3个位

对于每个要转换的通道,采样时间建议尽量长一点,以获得较高的准确度,但是这样会降低ADC的

转换速率。ADC的转换时间可以由下式计算:

Tcovn=采样时间+12.5个周期

第四个要介绍的是ADC规则序列寄存器(ADC_SQR1~3),