再单ADC模式下,该机制的实现很简单,但是无法通过Cube进行设置,需要手动添加两部分代码,如下所示:
首先在DMA初始化函数中添加如下代码:
- if (HAL_DMAEx_MultiBufferStart((&hadc1)->DMA_Handle,(uint32_t)&hadc1.Instance->DR,mem0addr,mem1addr,memsize)!= HAL_OK){
- printf("\r\n HAL_DMAEx_MultiBufferStart failed!");
- }
- HAL_ADC_Start_DMA(&hadc1,(uint32_t *)mem0addr, memsize);
- __HAL_DMA_ENABLE_IT(&hdma_adc1,DMA_IT_TC); //开启传输完成中断
|