配置adc转换通过dma传输,不使用相关定时器中断、DMA中断和ADC中断
网上各种配置五花八门,这里提供我的配置方法
仅记录关键位置配置,根据自己的情况配置,并非只能如此。。
- ADC不使用连续转换,否则定时器触发可能失效,不论定时器是否开启都会一直转换
- DMA使用连续传输,否则ADC转换结果不能自动搬运到缓冲区,ADC转换完成会自动搬运,并不是一直在搬运(测试发现如果不设置连续方式,定时器时间并不会自动触发一次搬运,且ADC转换也可能不能进行,,)
- ADC配置正确的触发源事件
- 配置对应的触发源产生对应触发信号,这里是定时器15
- 最后记得打开ADC和定时器即可,这里使用了16个通道,,
//HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED); //校准按需使用
HAL_TIM_Base_Start(&htim15);
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)adc_buf,16);