11、STM32的ADC的原理与使用(内附代码)

一、ADC的原理及定义

Analog-to-Digital Converter的缩写。中文译名:模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。其实就是一个取样、量化、编码的一个过程。

典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。比如电量、光照传感器等常用。


二、模拟信号

模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,如目前广播的声音信号,或图像信号等。


三、数字信号

数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。 二进制码就是一种数字信号。二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。


四、单次转化与连续转换对比

11、STM32的ADC的原理与使用(内附代码)_第1张图片

 

11、STM32的ADC的原理与使用(内附代码)_第2张图片


五、扫描模式

11、STM32的ADC的原理与使用(内附代码)_第3张图片

其他请参考其中文参考手册


六、ADC精度

精度是衡量ADC转换准确性的一个标准,精度常有8bit 10bit 12bit 16bit四种,如下表所示:

11、STM32的ADC的原理与使用(内附代码)_第4张图片

也就是把3.3V的电压分成256,1024,4096,65535份,每一份电压是固定的,显而易见就是分的份数越多,精度就度越高了,也就是精度越小,ADC精度就越高

ADC的转换公式如下:

11、STM32的ADC的原理与使用(内附代码)_第5张图片


七、STM32F40x系列ADC外部通道和引脚对应关系 

通道号

ADC1

ADC2

ADC3

通道0

PA0

PA0

PA0

通道1

PA1

PA1

PA1

通道2

PA2

PA2

PA2

通道3

PA3

PA3

PA3

通道4

PA4

PA4

PF6

通道5

PA5

PA5

PF7

通道6

PA6

PA6

PF8

通道7

PA7

PA7

PF9

通道8

PB0

PB0

PF10

通道9

PB1

PB1

PF3

通道10

PC0

PC0

PC0

通道11

PC1

PC1

PC1

通道12

PC2

PC2

PC2

通道13

PC13

PC13

PC13

通道14

PC4

PC4

PF4

通道15

PC5

PC5

PF5


八、实现过程

//1、开启PA口时钟和ADC1时钟,设置PA1为模拟输入。

  RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

  对应的GPIO初始化  

  GPIO_Init();      

//2、复位ADC1,同时设置ADC1分频因子。

 ADC_DeInit(ADC1);
//3、初始化ADC_CCR寄存器。

  ADC_CommonInit();

//4、初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。

  void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);

//5、使能ADC。

 ADC_Cmd(ADC1, ENABLE);
//6、配置规则通道参数:

  ADC_RegularChannelConfig();
//7、开启软件转换:

  ADC_SoftwareStartConvCmd(ADC1);

//8、等待转换完成,读取ADC值。

 ADC_GetConversionValue(ADC1);

 

你可能感兴趣的:(STM32,STM32)