STM32配置ADC2(DMA)进行采集 DAC 输出-1

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 来进行采集,并且通过串口发送到电脑上生成图像进行验证。

3. 注

可以采用adc_dma_enable(ADC_DMA_BUF_SIZE);来开启一次 ADC 的采集,采集的大小为ADC_DMA_BUF_SIZE我把ADC_DMA_BUF_SIZE的宏定义放在了adc.h中,我设置的大小为10000,大家可以根据自己的喜好来进行设置

4. 下一节:STM32配置ADC2(DMA)进行采集 DAC 输出-2

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天地神仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值