1. 实验目标
在正点原子的ADC(DMA)例程上,将ADC1改成ADC2来采集电压,并且进行测试
开发板:正点原子探索者STM32F407ZG
2. 查看adc.h和开发指南需要修改哪些配置
2.1 ADC相关
通过查看开发指南我们发现,ADC1 和 ADC2 的通道 5 都是采用的 PA5 引脚,就意味着我们修改为 ADC2 后还是可以通过 PA5 来进行电压的测量。
对应的我们在adc.h中找到相关的配置,这里开启的是 ADC1 的时钟
在这里我们要改为 ADC2 的时钟,即如下图所示。
如果不知道不知道 ADC2 对应的函数是什么,可以选中这个函数,然后右键 Go To 一下,一般来说相关配置的宏定义都会在弹出的文件的游标附近,可以自行找一下,或者是根据他的命名规则直接来修改也可以(一般是不会有问题,有问题了再说)
2.2 ADC和DMA数据流相关
通过数据手册我们可以看到,例程给的是 DMA2 的
通道 0 数据流 4 ADC1 的配置,我们需要修改为
通道 1 数据流 2 ADC2 的配置
还需要查看一下 DMA 中断相关的寄存器,注意标红的位置,一会修改的时候会用上
在adc.h中我们去查看一下相关的宏定义
看了手册后,我们对这里的宏定义修改应该行云流水了,下面是修改后的样子,注意标红的位置。根据上面的手册我们可以知道 HISR 和 HIFCR 是控制数据流 4-7 的,而我们现在输入的流是 2 所以对应的要修改为 LISR 和 LIFCR ,而这里的偏移量也是根据手册上标记的来设置的
修改了以上的设置 adc.h就算是修改完成了,但是此时我们还是不能使用,因为在adc.c中还有一些地方需要修改
2.3 adc.c的修改
我们找到这个函数,发现这里的初始化函数是写死的参数,于是我们需要手动的进行修改
修改后的样子
到这里我们就成功的设置了使用 ADC2 来进行采集啦,下一节将会实现通过按键按下一次输出三角波,然后通过刚刚写好的 ADC2 来进行采集,并且通过串口发送到电脑上生成图像进行验证。文章来源:https://www.toymoban.com/news/detail-431124.html
3. 注
可以采用adc_dma_enable(ADC_DMA_BUF_SIZE);
来开启一次 ADC 的采集,采集的大小为ADC_DMA_BUF_SIZE
,我把ADC_DMA_BUF_SIZE的宏定义放在了adc.h中,我设置的大小为10000
,大家可以根据自己的喜好来进行设置文章来源地址https://www.toymoban.com/news/detail-431124.html
4. 下一节:STM32配置ADC2(DMA)进行采集 DAC 输出-2
到了这里,关于STM32配置ADC2(DMA)进行采集 DAC 输出-1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!