HAL ADC配置

HAL ADC

参数解释

Clock Prescaler 时钟预分频 为保证采集精度最好使分频后时钟在36Mhz以下
Resolution 分辨率 有8位,10位,12位的,这里选择最高的就行
Date Alignment 数据对齐方式 我们ADC转换后的数据存在寄存器中,12位的,这12位是左对齐右对齐都行
Scan Conversion Mode 扫描模式,当我们使用多通道采集的时候需要使能他去轮询读取每个通道值
Continous Conversion Mode 持续转换模式,一般我们都是连续转换,这个我们需要使能他
Discontinous Conversion Mode 与上边序号5相反
DMA Continous Requests 不经过cpu去提取转换的数据,直接交给DMA操作。
————————————————
原文链接:https://blog.csdn.net/weixin_50303783/article/details/109086972

ADC转换模式

1 单次转换模式:ADC只执行一次转换;

2 连续转换模式:转换结束之后马上开始新的转换;

3 扫描模式:ADC扫描被规则通道和注入通道选中的所有通道,在每个组的每个通道上执行单次转换。在每个转换结束时,这一组的下一个通道被自动转换。如果设置了CONT位(开启了连续 转换模式),转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。

也就是一组一组转换

4 间断模式:触发一次,转换一个通道,在触发,在转换。在所选转换通道循环,由触发信号启动新一轮的转换,直到转换完成为止。

扫描模式简单的说是一次对所有所选中的通道进行转换,比如开了ch0,ch1,ch4,ch5。  ch0转换完以后就会自动转换通道1,4,5直到转换完这个过程不能被打断。如果开启了连续转换模式,则会在转换完ch5之后开始新一轮的转换。

这就引入了间断模式,可以说是对扫描模式的一种补充。它可以把0,1,4,5这四个通道进行分组。可以分成0,1一组,4,5一组。也可以每个通道单独配置为一组。这样每一组转换之前都需要先触发一次。

ADC单通道:

只进行一次ADC转换:配置为“单次转换模式”,扫描模式关闭。ADC通道转换一次后,就停止转换。等待再次使能后才会重新转换

进行连续ADC转换:配置为“连续转换模式”,扫描模式关闭。ADC通道转换一次后,接着进行下一次转换,不断连续。

ADC多通道:

只进行一次ADC转换:配置为“单次转换模式”,扫描模式使能。ADC的多个通道,按照配置的顺序依次转换一次后,就停止转换。等待再次使能后才会重新转换

进行连续ADC转换:配置为“连续转换模式”,扫描模式使能。ADC的多个通道,按照配置的顺序依次转换一次后,接着进行下一次转换,不断连续。

也就是:多通道必须使能扫描模式
————————————————
原文链接:https://blog.csdn.net/as480133937/article/details/99627062

数据左右对齐

ADC数据12精度,保存在16位寄存器中

数据对齐

注入通道和规则通道

规则通道:

规则通道就是正常的执行顺序
注入通道:

注入通道可以打断规则通道,如果在规则通道转换过程中,有注入通道进行转换,那么就
要先转换完注入通道,等注入通道转换完成后,再回到规则通道的转换流程

在这里插入图片描述

ADC时钟

通常,由时钟控制器提供的ADCCLK时钟和PCLK2(APB2时钟)同步。

RCC控制器为ADC时钟提供一个专用的可编程预分频器。 分频因子由RCC_CFGR的ADCPRE[1:0]配置,可配置2/4/6/8分频

STM32的ADC最大的转换速率为1MHz,也就是说最快转换时间为1us,为了保证ADC转换结果的准确性,ADC的时钟最好不超过14M。

T = 采样时间 + 12.5个周期,其中1周期为1/ADCCLK

例如,当 ADCCLK=14Mhz 的时候,并设置 1.5 个周期的采样时间,则得到: Tcovn=1.5+12.5=14 个周期=1us。
————————————————
原文链接:https://blog.csdn.net/as480133937/article/details/99627062