DMA方式ADC采集实验总结:
1.关于dma
(1)首先模式要配置好,是不是循环模式,内存到内存还是外设到内存。
(2)(源和目的地的)数据库宽度要一致,此次dma实验adc为12位,我定义了一个u16 adc[10]来存储adc数据,则配置里需要保证数据宽度为halfword
(3)根据手册,确定需要的dma通道。
2关于adc
(1)注意!需要调用函数:ADC_DMACmd(ADC1, ENABLE);//开启adc的dma支持
(2)adc配置里,一定记得调用:ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能
ADC_RegularChannelConfig(ADC1,ADC_Channel_1,1,ADC_SampleTime_239Cycles5);//通道一转换结果保存到ADCConvertedValue[0~10][0]
(3)同时注意是否扫描模式,是否循环模式
3.关于调试
首先,检查程序时,先检查各个部分的配置,是否错写。
漏写(我这次就是因为配置写漏了,adc也忘了初始化,找问题找了好久才找到)
然后再检查逻辑问题,利用led和串口,以及软件debuge调试
!](https://img-blog.csdnimg.cn/20201202085821861.png)