OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4007|回复: 4

DMA转换结束触发中断,但是出不来,一直在触发点和中断间循环

[复制链接]

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2020-9-1
在线时间
24 小时
发表于 2020-12-23 15:20:29 | 显示全部楼层 |阅读模式
5金钱
问题:目前想提高效率,想法是:将10次累加过程放入中断。也就是DMA每次转换结束触发一次中断,在中断中进行累加,需要触发10次!结果问题来了
1、程序一直在触发点与中断间循环,出不来,导致数组一直在累加;
2、我发现了一个异常的地方,程序在中断总是会运行到hdma->XferErrorCallback(hdma),意思是说,DMA转换哪里报了错。
过程思路如下:


小弟最近在用16路ADC+DMA采集数据的实验,简单过程:DMA将16路ADC采集的数据放在自定义数组M中,每来一组累加一次,一共进行十次取平均值。
  1. for(z=0;z<10;z++)
  2. {
  3.         HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_ConvertedValue, 16);

  4. <b>        for(x=0;x<16;x++)
  5.        {
  6.            ADC_ConvertedFValue[x]+=ADC_ConvertedValue[x];
  7.        }</b>
  8. }
  9. for(i=0;i<16;i++)
  10. {
  11.         ADC_ConvertedFFValue[m++]=ADC_ConvertedFValue[i]/10;
  12.        
  13.        ADC_ConvertedFValue[i]=0;
  14.                                
  15.         if(m>=514)
  16.             HAL_ADC_Stop_DMA(&hadc1);
  17. }
复制代码
一共四组这样程序,就不贴了。


目前想提高效率,想法是:将10次累加过程放入中断。也就是DMA每次转换结束触发一次中断,在中断中进行累加,需要触发10次!
结果问题来了
1、程序一直在触发点与中断间循环,出不来,导致数组一直在累加;
2、我发现了一个异常的地方,程序在中断总是会运行到hdma->XferErrorCallback(hdma),意思是说,DMA转换哪里报了错。
  1. if (hdma->XferErrorCallback != NULL)
  2. {
  3. /* Transfer error callback */
  4. hdma->XferErrorCallback(hdma);
  5. }
复制代码


错误1.png

相关代码如下:
  1. /*这些都是CubeMx自己生成的,我只是往里面加入*/
复制代码



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2020-9-1
在线时间
24 小时
 楼主| 发表于 2020-12-23 15:23:02 | 显示全部楼层
希望大伙给点思路和建议,求求了
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2020-9-1
在线时间
24 小时
 楼主| 发表于 2020-12-23 20:54:55 | 显示全部楼层
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2020-12-23 23:30:51 | 显示全部楼层
你在中断里再次开启DMA采样,这恐怕不行。
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2020-9-1
在线时间
24 小时
 楼主| 发表于 2020-12-24 15:01:32 | 显示全部楼层
c2007s 发表于 2020-12-23 23:30
你在中断里再次开启DMA采样,这恐怕不行。

我只是在中断里加了一个累加的函数,其他都是自动生成的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 09:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表