ADC初始化函数:
void Adc_Initialize(void)
{
ADC2_Init(ADC2_CONVERSIONMODE_SINGLE,ADC2_CHANNEL_8,ADC2_PRESSEL_FCPU_D2,
ADC2_EXTTRIG_TIM,DISABLE,ADC2_ALIGN_RIGHT,ADC2_SCHMITTTRIG_CHANNEL8,DISABLE);
ADC2_Cmd(ENABLE);
}
其中:
ADC2_CONVERSIONMODE_SINGLE:ADC转换模式为单次转换模式.
ADC2_CHANNEL_8:对应GPIO口的通道
ADC2_PRESSEL_FCPU_D2:预分频.
注意:ADC 的时钟是有fMASTER时钟经过预分频后供给的,fMASTER 可以被分频 2 到 18
,如f ADC = f MASTER /2.
ADC2_EXTTRIG_TIM:触发方式.
注意:ADC触发方式分为两种,一是外部中断触发GPIO,另一个是定时器触发TRGO.
DISABLE:是否使能该触发方式.
ADC2_ALIGN_RIGHT:右对齐.
注意:
ADC2_SCHMITTTRIG_CHANNEL8:施米特触发通道.
DISABLE:是否使能施密特触发.
ADC2_Cmd(ENABLE);//开启ADC转换
采集数据:
本文使用的是单次转换模式,即在单次转换模式中,ADC仅在所选通道上完成一次转换.一旦转换完成,转换的数据存放在ADC_DR寄存器中,EOC(转换结束)标志被置位.
ADC2_StartConversion();//启动ADC转换
while(ADC2_GetFlagStatus() == RESET);//等待转换完成
ADC2_ClearFlag();//清除标准
temp = ADC2_GetConversionValue();//读取转换结果
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』