零死角玩转STM32---阅读摘记三

来源:互联网 发布:dna损伤修复 知乎 编辑:程序博客网 时间:2024/04/29 11:33

一、ADC(DMA模式)

1、时钟频率设置

CPU的最高时钟频率是72MHz,而ADC模块的最高时钟频率是14MHz。如果需要达到ADC模块的最高时钟频率,CPU的最高频率只能设置到14M x 4=56M。(PCLK2的常用时钟频率为72MHz,而ADCCLK必须低于14MHz,所以在这个情况下,ADCCLK最高频率为PCLK2的8分频,即ADCCLK=9MHz。若希望使ADC以最高的频率14MHz运行,可以把PCLK2配置为56MHz,然后再4分频得到ADCCLK。)二者不可兼得!另外,使用USB时系统时钟必须是48MHz或72MHz,此时ADC模块时钟能够得到的最高频率是48MHz / 4 = 12MHz 或 72MHz / 6 = 12MHz,即ADC的最高采样率为857K/s。

ADC_SampleTime的参数值则用于配置本通道的采样周期,最短可配置为1.5个采样周期,这里的周期指ADCCLK时钟周期

ADC采样时间计算公式:
TCONV = 采样周期+ 12.5个周期
公式中的采样周期就是本函数中配置的ADC_SampleTime,而后边加上的12.5个周期为固定的数值

2、自校准

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