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

还是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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版