一、ADC状态寄存器(ADC_SR)
主要用于判断是否转换结束。
二、ADC控制寄存器 1(ADC_CR1)
看一下几个比较主要的需要配置的
第一个:配置独立模式,其它模式比较高级,基础学习不需要。
第二个:允许EOC中断,就是转化结束后得中断
三、ADC控制寄存器 2(ADC_CR2)
第一个 SWSTART开始规则通道转换,这个可以在代码里置1,然后就会开启一次转换,等待转换结束就可以读取数据。
第二个 使用外部事件启动转换,然后EXTSEL选择SWSTART软件启动。其它的外部事件是定时器启动,也就是说定时器和ADC结合起来,可以固定采样时间进行转换,只需要开启中断,在中断处理函数中将值读取出来,这就节约了很多资源。本文采用SWSTART手动开启转换
第三个 数据右对齐,因为寄存器是16位的寄存器,但是数据长度只有12位,所以可以选择左对齐和右对齐。
第四个 复位校准和A/D校准,这在上电时可以进行校准,提高精度
第五个 采用单次转换模式
第六个 开启ADC
四、ADC采样时间寄存器 1(ADC_SMPR1)
采样时间寄存器有两个,每三位配置一个通道的采样时间,如果没有特殊需求直接最大239.5周期。
五、ADC规则序列寄存器 1(ADC_SQR1)
ADC规则序列寄存器有三个,第一个里第20位到23位配置序列长度,就是每次要转换的通道数目。然后每五个位配置转换通道的编号0~17,这些通道号分别和GPIO脚对应。