一、硬件引脚介绍
CSM32L051的P72、P70、P20具备ADC采集功能,本篇文章只对这三个引脚的ADC进行采集。

![]()
二、引脚通道配置介绍
通过查阅数据手册发现:
P20引脚用到的ADC为 ANI0 通道为 ADC_Channel_0
P70引脚用到的ADC为 ANI29 通道为 ADC_Channel_29
P72引脚用到的ADC为 ANI31 通道为 ADC_Channel_31
进行ADC初始化时要用到这些参数,需要先查阅好资料。
三、ADC初始化
void adc_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Ctrl = GPIO_Control_ANA; //模拟输入
GPIO_Init(GPIO_PORT2, &GPIO_InitStructure);//初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Ctrl = GPIO_Control_ANA; //模拟输入
GPIO_Init(GPIO_PORT7, &GPIO_InitStructure);//初始化
ADC_InitStructure.ADC_Mode = ADC_Mode_Select; //选择模式
ADC_InitStructure.ADC_ConvSpeed = ADC_ConvSpeed_High; //高速变换模式
ADC_InitStructure.ADC_Prescaler = ADC_Prescaler_Div32;//预分频
ADC_InitStructure.ADC_RefVoltage = ADC_Ref_Vdd; //使用VDD参考电压
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrig_Software; //软件触发
ADC_InitStructure.ADC_ContinuousConvMode = ADC_Conv_Continuous;//开启连续转换
ADC_InitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_4Cycles;
ADC_InitStructure.ADC_UpLimit = ADC_UpLimit_Setting; //adc采样高8位 采样比较最大值,默认值
ADC_InitStructure.ADC_LowLimit = ADC_LowLimit_Setting; //adc采样高8位 采样比较最低值,默认值
ADC_Init(&ADC_InitStructure);
}
四、ADC读取
unsigned int adc1 = 0;//用于存放P20 adc的值
unsigned int adc2 = 0;//用于存放P70 adc的值
unsigned int adc3 = 0; //用于存放P72 adc的值
unsigned short get_value_adc1[8*2];//adc1
unsigned short get_value_adc2[8*2];//adc2
unsigned short get_value_adc3[8*2];//adc3
void adc_read(void)
{
adc1 = ADC_Converse(ADC_Channel_0,8,get_value_adc1);//读取adc1
adc2 = ADC_Converse(ADC_Channel_29,8,get_value_adc2);//读取adc2
adc3 = ADC_Converse(ADC_Channel_31,8,get_value_adc3);//读取adc3
}
五、ADC.h文件调用
#ifndef _ADC_H_
#define _ADC_H_
#include "adc.h"
void adc_init(void);
void adc_read(void);
extern unsigned int adc1;
extern unsigned int adc2;
extern unsigned int adc3;
#endif
六、main函数调用
int main()
{
adc_init();
while(1)
{
adc_read();
//可在这里调用adc1 - adc3 的值
//例如 int a = adc1;
}
}
1469

被折叠的 条评论
为什么被折叠?



