STM32 F446RET6多通道ADC采集

本次配置是根据STM32CUBEIDE去开发的

  • DMA搬运数据规则

使用DMA搬运数据的时候我们会先建立一个数据缓冲区,将DMA采集的数据存放到数据缓冲区内。采集到的ADC的值根据通道的顺序一个一个的将数据存放进去。

  • 两种ADC数据采集方式
    ①连续将数据搬运。
    直接开启DMA将ADC采集的数据存放进缓冲区,此种方法是连续数据搬运进缓冲区,可能造成的影响是数据容易被污染,也就是当数据没有完全处理时,DMA没有关闭,原来存放在缓冲区的数据被后面的数据覆盖。
    ②单次点击执行
    配置定时器的溢出时间,当定时器时间到了就触发ADC采集数据,ADC根据通道的配置,将每个通道采集的值依照先后顺序由DMA搬运至缓冲区。当ADC采集的数据满时,产生转换完成中断,等待下一次触发信号收集ADC采集的数据。

ACD内部配置
在这里插入图片描述

  • 将连续扫描通道打开(如果选择使用使用手动打开,就不需要开启)
    在这里插入图片描述

  • 选择转换的通道数量(我有7个通道)
    在这里插入图片描述

  • 选择通道转换的优先级以及采样频率
    在这里插入图片描述

接下来我们需要打开DMA,用DMA来搬运这些采集的数据。

多通道我们必须选择用ADC来采集,配置如下:
在这里插入图片描述

/* USER CODE BEGIN 2 */

  uint32_t VR[7] ;  //存储ADC结果的变量,必须为32位无符号型
while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
HAL_ADC_Start_DMA(&hadc1, VR, 7); // Start adc in dma for multichaannel
  }
  /* USER CODE END 2 */




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值