STM32 CubeMX学习实验11:ADC-DMA多通道采集

一、工程配置

开启ADC,选择任意两个通道,使能扫描模式和连续转换模式,只需要开启一次传输,转换后不需要手动开启转换,使能DMA传输,根据需要分配转换顺序和转换时间。

打开DMA Settings选项,添加DMA对ADC1数据进行传输,选择循环模式,不需要手动开启下一次传输,其他选项默认即可。

二、代码分析和实现

在主函数中可以看到系统已经对DMA和ADC进行初始化,需要注意的是,有些版本较低的CubeMX会将DMA初始化放到ADC初始化之后,导致DMA传输失败,如果出现顺序错误,需要手动修改代码。定义一个数组用于获取ADC值,因为开启了两个通道,所以这里设置大小为2,也可以设置为20或200,数据存储的顺序和CubeMX中配置的Rank一样(IN5  IN13  IN5  IN13.......),在while中将数据通过串口传输到上位机就能观察到ADC数据变化了。

三、实验现象

ADC值变化曲线图

本实验仅需要简单配置和少量代码就可以读取ADC值, 如果之开启了一个通道,同样也可以使用DMA进行传输,只需要在Rank中将两个通道都设置为一样的就能实现单通道DMA传输了。

下期学习DAC数模转换。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值