cubemx配置ADC采集(DMA模式)

一.单通道DMA 

1.DMA有两种模式,分别为CIRCULAR和NORMAL。
(1).CIRCULAR模式:DMA的CIRCULAR模式只需要调用一次DMA开启函数,DMA就会持续的搬运数据,提高了数据的刷新速度,但是在CIRCULAR模式下,不管ADC新的一轮数据采集是否完成,有可能直接将旧数据搬运走。(建议加上ADC转换完成函数,确保数据的完整性
(2).NORMAL模式:该模式下,DMA启动函数调用一次,DMA通道只会搬运一次数据,这样每调一次DMA启动函数,DMA只会搬运一次数据,等待数据传输完成后再次开启DMA启动函数,这样更能保证ADC数据采集的可靠性。

1.选择ADC模块。

2.选择ADC通道。

3.选择需要的参数配置。

1.打开ADC的DMA方式默认为NORMAL模式。

单通道需要用的库函数。

(1).HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&AD_value,sizeof(AD_value));(加在main函数while(1)开始前)。

(2).DMA搬运的数据在DMA中断中拿取。

二.多通道DMA

需要用到的库函数

HAL_ADC_Start_DMA(&hadc1,(uint32_t*)AD_value,sizeof(AD_value));

AD_value:需要存储的数据

第三个参数为需要转换的个数,此处可以写二维数组,依次转换多个数据方便后续的滤波计算。

例如:AD_value[8][4]定义一个8行4列的二维数组用于存储数据,对单个数据得8次采样求平均值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值