STM8 ADC初始化+采集数据

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:右对齐.

注意:

STM8 ADC初始化+采集数据_第1张图片

STM8 ADC初始化+采集数据_第2张图片

ADC2_SCHMITTTRIG_CHANNEL8:施米特触发通道.

DISABLE:是否使能施密特触发.

 

ADC2_Cmd(ENABLE);//开启ADC转换

 

采集数据:

本文使用的是单次转换模式,即在单次转换模式中,ADC仅在所选通道上完成一次转换.一旦转换完成,转换的数据存放在ADC_DR寄存器中,EOC(转换结束)标志被置位.

ADC2_StartConversion();//启动ADC转换

while(ADC2_GetFlagStatus() == RESET);//等待转换完成

ADC2_ClearFlag();//清除标准

temp = ADC2_GetConversionValue();//读取转换结果

你可能感兴趣的:(STM8单片机)