STM32的ADC模块如何设置

时间:2024-10-15 05:39:27

1、ADC怎么从1路扩展成两路ADC:(1)设置ADC的通道数量:ADC_InitStructure.A肛舀辨乔DC_NbrOfChannel = ADC_GALLERY_COUNT;(2)各路ADC的转换次序:ADC_RegularChannelConfig(ADC1, ADC1_CHANNE, ADC1_NUM, ADC_SampleTime_239Cycles5); ADC_RegularChannelConfig(ADC1, ADC2_CHANNE, ADC2_NUM, ADC_SampleTime_239Cycles5);

STM32的ADC模块如何设置

2、怎么保证ADC采样出来的值能准确,ADC值波动少:如果用的是DMA方式,则里面放入的ADC值是在随时变化的,所以可以从相应的SRAM中读出相应的数据,然后每次取N个值,去除最大值,去除最小值,最后再求平均值,这样可以保证ADC得到的值比较稳定。

STM32的ADC模块如何设置

3、如果设置了DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM中。而注入通道转换的数据总是存储在ADC_JDRx寄存器中。

4、注入组的数据左对齐方式中,要注意第一位不是数据值,而是SEXT填充,所以读取数据时一定要注意这一点

STM32的ADC模块如何设置

5、因为规则通道转换的值储存在一个唯一的数据寄存器中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已吲溘活口经存储在ADC_DR寄存器中的数据。 只有在规则通道的转换结束时才产生DMA请求,并将转换的数据从ADC_DR寄存器传输到用户指定的目的地址。

STM32的ADC模块如何设置

6、ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在校准期间,每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差。

7、ADC12_INx(x表示4~9或14~15之间的整数),表示这个引脚可以是ADC1_INx或ADC2_INx。例如:ADC12_IN9表示这个引脚可以配置为ADC1_IN9,也可以配置为ADC2_IN9。

STM32的ADC模块如何设置

8、ADC供电要求:2.4V到3.6V;ADC输入范围:VREF- ≤ VIN ≤ VREF+。ADC使用的高端/正极参考电压,2.4V ≤ VREF+ ≤ VDDA 。ADC使用的低端/负极参考电压,VREF- = VSSA 。

9、采样时间计算STM32的AD输入时钟不得超过14怡觎现喾MHZ,转换时间为12.5个周期,总共的ADC转换时间 = 间隔周期 + 转换时间。ADC_RegularC茑霁酌绡hannelConfig(ADC1, ADC1_CHANNE, ADC1_NUM, ADC_SampleTime_239Cycles5); //设置ADC1通道10采样时间为239周期,用于设置间隔时间转换时间固定为12.5个周期,频率为AD设置输入时钟。

© 手抄报圈