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,该寄存器的各位描述如下: ADCON 位用于开关 AD 转换器
而 CONT 位用于设置是否进行连续转换,我们使用单次转换,所以CONT 位必须为0
CAL 和 RSTCAL 用于 AD 校准
ALIGN 用于设置数据对齐,我们使用右对齐,该位设置为0
EXTSEL[2:0]用于选择启动规则转换组转换的外部事件,我们这里使用的是软件触发(SWSTART),所以设置这3 个位为111
第三个要介绍的是ADC 采样事件寄存器(ADC_SMPR1 和 ADC_SMPR2),这两个寄存器用于设置通道 0~17 的采样时间,每个通道占