__HAL_LINKDMA( &ADC_Handle,DMA_Handle,hdma_adcx); //DMA句柄关联到
//---------------------------------------------------------------------------
// 开启ADC时钟
// __HAL_RCC_ADC1_CLK_ENABLE();
ADC_Handle.Instance = ADC1;
if (HAL_ADC_DeInit(&ADC_Handle) != HAL_OK)
{
/* ADC de-initialization Error */
// Error_Handler();
}
ADC_Handle.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; /* 同步时钟模式,带prscaler 2的输入ADC时钟 */
ADC_Handle.Init.Resolution = ADC_RESOLUTION_12B; /* //12位精度 */
ADC_Handle.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* //右对齐 */
ADC_Handle.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; /* Sequencer disabled (ADC conversion on only 1 channel: channel set on rank 1) */
ADC_Handle.Init.EOCSelection = ADC_EOC_SINGLE_CONV; /* EOC flag picked-up to indicate conversion end */
ADC_Handle.Init.LowPowerAutoPowerOff = DISABLE;
ADC_Handle.Init.LowPowerAutoWait = DISABLE; /* Auto-delayed conversion feature disabled */
ADC_Handle.Init.ContinuousConvMode = ENABLE; /* Continuous mode enabled (automatic conversion restart after each conversion) */
ADC_Handle.Init.DiscontinuousConvMode = DISABLE; /* Parameter discarded because sequencer is disabled */
ADC_Handle.Init.ExternalTrigConv = ADC_SOFTWARE_START; /* 软件触发 */
ADC_Handle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Parameter discarded because software trigger chosen */
ADC_Handle.Init.DMAContinuousRequests = ENABLE; /* ADC DMA continuous request to match with DMA circular mode */
ADC_Handle.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; /* DR register is overwritten with the last conversion result in case of overrun */
ADC_Handle.Init.SamplingTimeCommon = ADC_SAMPLETIME_55CYCLES_5;
/* Initialize ADC peripheral according to the passed parameters */
if (HAL_ADC_Init(&ADC_Handle) != HAL_OK) //初始化
{
//Error_Handler();
printf("初始化失A\r\n");
}