采用stm32cubemx生成
一、硬件配置
1、adc设置
2、dma设置
二、软件使用注意事项
1、while循环前加入,先采集一次,算做初始化,并触发adc转化完成callback。
HAL_ADC_Start_DMA(&hadc,(uint32_t *)adc_buff,8);
2、while循环加入,由于dma是正常模式,dma工作一个循环即停止。程序框架
if(adc_flag==1)
{
//HAL_ADC_Start(&hadc);
HAL_ADC_Stop_DMA(&hadc);
HAL_ADC_Start_DMA(&hadc,(uint32_t *)adc_buff,8);
adc_flag=0;
}
3、在adc转化完成中断中,触发更改adc_flag=1。标志位通知第2步开始工作。
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
adc_flag=1;
//HAL_ADC_Stop_DMA(&hadc);
}
4、这是一个DMA(正常模式)+ADC的使用方法。跟dma(循环模式稍不同)
|