STM32 ADC注入通道的使用

2017-09-13 19:23:00来源: eefocus 关键字:STM32  ADC  注入通道

通过ADC注入通道的使用,可以实时获取4个GPIO输入的AD采样值,下面看具体的代码。 
芯片:STM32F205VCT6

STEP1:初始化GPIO

void GPIO_Configuration ( void )
{
//GPIO -PC0 PC1 PC2 PC3 -ADC3
    GPIO_InitStructure.GPIO_Pin     = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Mode    = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd    = GPIO_PuPd_NOPULL;
    GPIO_InitStructure.GPIO_Speed   = GPIO_Speed_50MHz;
    GPIO_Init ( GPIOC, &GPIO_InitStructure );
}123456789

STEP2:初始化ADC

void ADC_Configuration(void)
{                                       
    ADC_InitTypeDef       ADC_InitStructure;
    ADC_CommonInitTypeDef ADC_CommonInitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC3, ENABLE);//ADC Common Init 
    ADC_CommonInitStructure.ADC_Mode                = ADC_Mode_Independent;
    ADC_CommonInitStructure.ADC_Prescaler           = ADC_Prescaler_Div4;
    ADC_CommonInitStructure.ADC_DMAAccessMode       = ADC_DMAAccessMode_Disabled;
    ADC_CommonInitStructure.ADC_TwoSamplingDelay    = ADC_TwoSamplingDelay_20Cycles;
    ADC_CommonInit(&ADC_CommonInitStructure);// ADC3 Init 
    ADC_InitStructure.ADC_Resolution                = ADC_Resolution_12b;
    ADC_InitStructure.ADC_ScanConvMode              = ENABLE;
    ADC_InitStructure.ADC_ContinuousConvMode        = ENABLE;
    ADC_InitStructure.ADC_ExternalTrigConvEdge      = ADC_ExternalTrigConvEdge_None;
    ADC_InitStructure.ADC_ExternalTrigConv          = ADC_ExternalTrigConv_T1_CC1;
    ADC_InitStructure.ADC_DataAlign                 = ADC_DataAlign_Right;
    ADC_InitStructure.ADC_NbrOfConversion           = 1;
    ADC_Init(ADC3, &ADC_InitStructure);

    ADC_TempSensorVrefintCmd(ENABLE);
    ADC_RegularChannelConfig(ADC3, ADC_Channel_Vrefint, 1, ADC_SampleTime_144Cycles);

    ADC_AutoInjectedConvCmd(ADC3, ENABLE);
    ADC_ExternalTrigInjectedConvEdgeConfig(ADC3, ADC_ExternalTrigInjecConvEdge_None); 
    ADC_InjectedSequencerLengthConfig(ADC3, 4);
    ADC_InjectedChannelConfig(ADC3, ADC_Channel_10, 3,ADC_SampleTime_144Cycles);
    ADC_InjectedChannelConfig(ADC3, ADC_Channel_11, 4,ADC_SampleTime_144Cycles);
    ADC_InjectedChannelConfig(ADC3, ADC_Channel_12, 2,ADC_SampleTime_144Cycles);
    ADC_InjectedChannelConfig(ADC3, ADC_Channel_13, 1,ADC_SampleTime_144Cycles);
    ADC_SetInjectedOffset(ADC3, ADC_InjectedChannel_1, 2000);//采样后的值减去阈值,可以省去后续的处理
    ADC_SetInjectedOffset(ADC3, ADC_InjectedChannel_2, 2000);// Enable ADC3 
    ADC_Cmd(ADC3, ENABLE);
    ADC_SoftwareStartConv(ADC3);}123456789101112131415161718192021222324252627282930313233343536373839404142

STEP3:使用

value1 = ADC_GetInjectedConversionValue(ADC3, ADC_InjectedChannel_1);value2 = ADC_GetInjectedConversionValue(ADC3, ADC_InjectedChannel_2);value3 = ADC_GetInjectedConversionValue(ADC3, ADC_InjectedChannel_3);value4 = ADC_GetInjectedConversionValue(ADC3, ADC_InjectedChannel_4);


关键字:STM32  ADC  注入通道

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2017091334412.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32 ADC的规则通道和注入通道的区别
下一篇:嵌入式设计经验:ARM-WinCE平台时钟同步设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
STM32
ADC
注入通道

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved