你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

还是ADC+DMA问题

[复制链接]
zeng_gj 提问时间:2015-9-1 11:24 /
最近的项目用了STM32F427,在调试数据采集时遇到问题,如下:
  配置:三重ADC方式,采集14路信号,每ADC采集5路,最后用一个重复通道补齐。
          ADC采用TIM3的TRGO触发,每347uS触发一次,数据用DMA传输。DMA传输
          完成后中断处理,处理程序运行时间少于20uS。
  问题:程序启动时一切正常。但当运行一段时间后发现DMA存储区的第11和13word(32位)
           易位。如此时复位,则又能正常运行,然后问题重复。出现问题的时长没发现规律。如果
           不理会上述数据错位而继续运行的话,则错位越来越严重。
  说明:开发环境Keil5,调试器J-Link,SW模式。发生异常时,通过调试器检查各外设的寄存器,包括
          ADC的几个寄存器段,DMA等等,都没有发现问题。
  我用的是HAL库,Stm32Cube生产的原始代码。找了很久都没能发现问题,在网上倒是查到类似帖子,
  但没有结果。恳请达人赐教,不胜感激!
收藏 评论4 发布时间:2015-9-1 11:24

举报

4个回答
废鱼 回答时间:2015-9-1 15:45:31
楼主可以考虑一下单独ADC采集5路时,DMA是否会出错?当出错以后分析一下数据,是不是别的地方写入的。
拉肚肚 回答时间:2015-9-1 15:59:53
我只是来学习一下
zeng_gj 回答时间:2015-9-1 16:58:41
谢谢2楼。
我的程序很简单,调试过程中已经屏蔽了其他代码段。如果缓存被侵占的话不太会有这样的规律。
因为出错时不复位是不会恢复的,而数据在反复写入。
我尝试改为2ADC同步规则模式,DMA方式2,目前已经跑了较长时间,倒是还没有发现问题。
本人比较爱好新鲜事物,算不上是STM32的新手。以前用103的也做过上万行代码,那时候没
有遇见到这个问题。
原本软件防错也可以,但我还没有办法找到出错的特征,也就无法实施。
anny 回答时间:2015-9-4 22:25:24
之前有个大神好像说是,要先打开DMA先AD转换才对吧

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版