选择adc1的通道0 开启持续转换模式,转换周期设置为239.5 ,可以自行调整。
设置dma 添加dma通道 选择adc1 然后将模式选择为循环模式,其他默认即可。
然后在main函数初始化后添加如下代码 开启转换 如果一轮只搬运一次数据就可以定义个变量,如果要一轮搬运多次数据,就定义一个数组进行接收,第三个参数改为数组的长度即可。
HAL_ADC_Start_DMA(&hadc1,&dy,1);
printf("%.2f\n",dy*3.3/4096);
HAL_Delay(500);
然后在主循环里打印出来。这样配置 只需调用一次开始函数,DMA就会一直进行转换,但转换周期不能太短,会卡死。
结果: