选择 adc1 的通道 0 开启持续转换模式,转换周期设置为 239.5 ,可以自行调整。

设置 dma 添加 dma 通道 选择 adc1 然后将模式选择为循环模式,其他默认即可。

然后在 main 函数初始化后添加如下代码 开启转换 如果一轮只搬运一次数据就可以定义个变量,如果要一轮搬运多次数据,就定义一个数组进行接收,第三个参数改为数组的长度即可。

1
HAL_ADC_Start_DMA(&hadc1,&dy,1);

然后在主循环里打印出来。这样配置 只需调用一次开始函数,DMA 就会一直进行转换,但转换周期不能太短,会卡死。

1
2
printf("%.2f\n",dy*3.3/4096);
HAL_Delay(500);