有一个参考可以看看代码
#define SampleNum 240vu16 ADC_ConvertedValue[SampleNum];void ADC_DMA_Config(void){DMA_InitTypeDef DMA_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1 ENABLE);DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralbaseAddr = (uint32_t)&ADC1->DR;DMA_InitStructure.DMA_MemorybaseAddr = (u32)&ADC_ConvertedValue;DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize = 1;DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址不变DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存地址递增DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;DMA_InitStructure.DMA_Priority = DMA_Priority_High;DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;DMA_Init(DMA1_Channel1 &DMA_InitStructure);DMA_Cmd(DMA1_Channel1ENABLE);}void ADC1_Config(void){GPIO_InitTypeDef GPIO_InitStructure;ADC_InitTypeDef ADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOC &GPIO_InitStructure);ADC_DMA_Config();RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 ENABLE);// ADC_DeInit(ADC1);ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1和ADC2工作在独立模式ADC_InitStructure.ADC_ScanConvMode = DISABLE;//多通道ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//连续转换ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T3_CC1;//软件启动转换ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//转换结果右对齐ADC_InitStructure.ADC_NbrOfChannel = 1;//通道数目ADC_Init(ADC1 &ADC_InitStructure);RCC_ADCCLKConfig(RCC_PCLK2_Div6); //PCLK 6分频ADC_RegularChannelConfig(ADC1 ADC_Channel_15 1 ADC_SampleTime_55Cycles5);ADC_DMACmd(ADC1 ENABLE);ADC_Cmd(ADC1 ENABLE);ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);//开始校准while(ADC_GetCalibrationStatus(ADC1));ADC_ExternalTrigInjectedConvConfig(ADC1 ADC_ExternalTrigConv_T3_CC1);//TIM_CC1ADC_ExternalTrigConvCmd(ADC1 ENABLE);// ADC_SoftwareStartConvCmd (ADC1 ENABLE);// ADC_ExternalTrigConvCmd(ADC1 ENABLE);//设置外部触发模式使能}