嵌入式 > 其他资讯 > 详情

STM8 ADC初始化+采集数据

发布时间:2021-07-21 发布时间:
|

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();//读取转换结果


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
面对AI革命.自动驾驶技术怎样顺势而为?