本篇内容主要讲解“stm32f051 adc单次软件选择循环采样的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“stm32f051 adc单次软件选择循环采样的方法是什么”吧!
void ADC1_Config(void) { ADC_InitTypeDef ADC_InitStruct; GPIO_InitTypeDef GPIO_InitStruct; /* Enable GPIOA clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);//使能GPIOA时钟 /* ADC1 Periph clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//使能ADC1时钟 /* Configure PA.0 as analog input */ GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOA, &GPIO_InitStruct); //设置PA0为模拟输入,PA0对应的是通道0 ADC总共19个通道,16个外部通道,一个温度,一个电压,还有一个自己内部的Vbat通道; /* ADC1 DeInit */ ADC_DeInit(ADC1); /* Initialize ADC structure */ ADC_StructInit(&ADC_InitStruct); /* Configure the ADC1 in continous mode withe a resolutuion equal to 12 bits */ ADC_InitStruct.ADC_Resolution = ADC_Resolution_12b; //12位的分辨率 ADC_InitStruct.ADC_ContinuousConvMode = ENABLE; //循环采样,意思就是在整个程序可以被进行多次转换,单次转换的话整个程序生命周期只能被触发一次 ADC_InitStruct.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;软件触发 ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right; 右对齐 ADC_InitStruct.ADC_ScanDirection = ADC_ScanDirection_Upward; ADC_Init(ADC1, &ADC_InitStruct); ADC_ChannelConfig(ADC1, ADC_Channel_0, ADC_SampleTime_55_5Cycles); 设置采样通道,一定要把通道号和引脚的串口号对应起来 /* ADC Calibration */ ADC_GetCalibrationFactor(ADC1); //adc校准 ADC_Cmd(ADC1, ENABLE); 使能adc /* Wait the ADCEN falg */ while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN)); /* ADC1 regular Software Start Conv */ ADC_StartOfConversion(ADC1); 开始ADC转换 } ADCData[Num]=ADC_GetConversionValue(ADC1) 在实际程序中可以用这个函数进行采样
到此,相信大家对“stm32f051 adc单次软件选择循环采样的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。