/* Enable ADC DMA mode */
hadc1.Instance->CR2 |= ADC_CR2_DMA; //Enable ADC DMA function
HAL_DMA_Start_IT(&hdma_adc1, (uint32_t)&hadc1.Instance->DR, (uint32_t)Adc_data1, 3);
__HAL_TIM_ENABLE(&htim2); //start counter
while(!Flag_DMA_over) //waite for 3 ADC data tranfer to be completed
{
}
Flag_DMA_over =00;
__HAL_TIM_DISABLE(&htim2); //turn off counter
TIM2->EGR = TIM_EGR_UG; // reset timer manually
hadc1.Instance->CR2 &= ~ADC_CR2_DMA; //Disable ADC DMA
__HAL_DMA_DISABLE(&hdma_adc1); //Disable DMA2 stream 0
while(!(__HAL_ADC_GET_FLAG(&hadc1, ADC_FLAG_EOC)));
__HAL_ADC_CLEAR_FLAG(&hadc1, ADC_FLAG_EOC | ADC_FLAG_OVR); //Clear EOC/OVR
HAL_DMA_Start_IT(&hdma_adc1, (uint32_t)&hadc1.Instance->DR, (uint32_t)Adc_data2, 5);
hadc1.Instance->CR2 |= ADC_CR2_DMA; ////Enable ADC DMA
__HAL_TIM_ENABLE(&htim2);
/* USER CODE END 2 */
/* USER CODE BEGIN WHILE */
while (1)
{}
。。。}
|