嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
基于STM32F407
ADC_InitTypeDef ADC_InitStructure ;
ADC_CommonInitTypeDef ADC_CommonInitStructure ;
// 开启ADC时钟
RCC_APB2PeriphClockCmd(ADC1_CLK,ENABLE);
// -------------------ADC Common 结构体 参数 初始化------------------------
// 独立ADC模式
ADC_CommonInitStructure.ADC_Mode=ADC_Mode_Independent ;
// 时钟为fpclk x分频
ADC_CommonInitStructure.ADC_Prescaler=ADC_Prescaler_Div4 ;
// 禁止DMA直接访问模式
ADC_CommonInitStructure.ADC_DMAAccessMode=ADC_DMAAccessMode_Disabled ;//只有在多重ADC模式下使能
// 采样时间间隔
ADC_CommonInitStructure.ADC_TwoSamplingDelay=ADC_TwoSamplingDelay_20Cycles ;
ADC_CommonInit(&ADC_CommonInitStructure);
// -------------------ADC Init 结构体 参数 初始化--------------------------
ADC_StructInit(&ADC_InitStructure);
// ADC 分辨率
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 ;
//转换通道 3个
ADC_InitStructure.ADC_NbrOfConversion=3 ;
ADC_Init(ADC1,&ADC_InitStructure);
//---------------------------------------------------------------------------
// 配置 ADC 通道转换顺序和采样时间周期
ADC_RegularChannelConfig(ADC1,ADC1_CHANNEL1,1,ADC_SampleTime_3Cycles);
ADC_RegularChannelConfig(ADC1,ADC1_CHANNEL2,2,ADC_SampleTime_3Cycles);
ADC_RegularChannelConfig(ADC1,ADC1_CHANNEL3,3,ADC_SampleTime_3Cycles);
// 使能DMA请求 after last transfer (Single-ADC mode)//DMA在AD转换完自动传输数据到指定存储区
ADC_DMARequestAfterLastTransferCmd(ADC1,ENABLE);
// 使能ADC DMA
ADC_DMACmd(ADC1,ENABLE);
// 使能ADC
ADC_Cmd(ADC1,ENABLE);
//开始adc转换,软件触发
ADC_SoftwareStartConv(ADC1);//如果使用软件触发需要调用 ADC_SoftwareStartConvCmd 函数进行使能配置