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

【实战经验】STM32H7 DMA 传输异常案例分析

[复制链接]
STMCU-管管 发布时间:2019-3-19 09:51
STM32H7 DMA 传输异常案例分析1 Q( f: l# h. M
前言
) J7 a0 @2 i' I$ {# L9 p8 j2 f/ ]9 J6 C2 B& j* ?5 g
利用 ST 提供的辅助开发工具 STM32CubeMX,可以快速开发 STM32 应用。在本文中讨论的 ADC 应用,同样是建立在STM32CubeMX 生成工程的基础上。具体为在 STM32H743ZI 上,利用 DMA 自动实现 ADC 数据周期采集和转移,在采集指定数量的采样值后产生中断,对数据进行处理。 ( v% m* c' z" m3 g$ _. ~

# S' F8 Y! p, C7 K3 }文中仅对上述实现过程中出现的一种异常,进行介绍和分析。不涉及具体的 ADC 采集和处理实现的介绍。
5 u, W6 S9 b8 j6 C7 k
6 u. V! v3 J: R8 a
一 实验环境 : n4 [4 z% g" w# o( s% P9 C4 K

5 _2 e0 V  A5 A6 w( ~硬件平台:Nucleo-H743ZISTM32CubeMX - ~# B' I6 q) j3 Y7 u
& }* l( w, Y5 D
版本:v4.28.0STM32CubeH7
5 Q) E6 f/ z3 k
0 @- Z! {" D+ y5 V* X
版本:v1.2.0
0 b+ x0 X: H5 w6 H' m! H8 e* s: ~' h; W
IDE: MDK-ARM v5.25.2.0 (优化级别 Level3) ; b& L9 x$ g2 g: [% M

5 E/ z4 j( o; J7 ?; d# z& i首先利用 STM32CubeMX 生成 ADC 应用的初始化工程,涉及的配置如下所示
, k' `) d7 r5 G2 q1 I& g! e6 J: t. C
1.png

6 a( y& d& |+ K: ?; |6 H6 Y+ ~: ^, d8 _然后在工程中增加对 ADC 周期采集和 DMA 传输实现的命令,如下所示。并且增加回调函数内容,本文中实现仅添加了空指令。在调试过程中,在空指令处增加断点,判断 ADC DMA 传输半完成和传输完成中断是否正常进入。( `( ~  X7 z, X9 `) \. X5 e
, C. l" D6 h0 q7 Q0 Q; w
1.png

% B3 F: f6 ?& ]
注: 如果在编译链接的过程中,出现没有定义 ECC_IRQn 提示,需将 stm32h7xx_hal_msp.c 中对HAL_NVIC_SetPriority(ECC_IRQn, 0, 0);的调用移除。

0 l# n0 L' o: b/ l! W9 D
二 异常现象
- |. [4 D" {6 Y
在运行过程中,无法进入 HAL_ADC_ConvHalfCpltCallback 和 HAL_ADC_ConvCpltCallback 回调函数(分别对应 DMA传输半完成和传输完成回调函数)。
! M( J( I! ]1 L- M7 }, K7 j' W( V
跟踪中断服务函数,发现在首次 DMA1 传输后,DMA_LISR 寄存器值为 0x8。即 TEIF0 置位,Stream 0 出现传输错误。
4 s( [$ M% `5 X9 \
三 原因分析

$ R5 h) A# y1 ?/ t+ P1 ]
根据错误信息,问题可能与 DMA 1 传输错误有关。重点围绕 DMA1 传输配置, 进行检查,并没有发现异常。
5 g4 S0 y: N; G$ P
不过,同样的初始化配置和执行命令,放置在 ADC 例程(路径: STM32Cube_FW_H7_V1.2.0\Projects\STM32H743ZINucleo\Examples\ADC\ADC_DMA_Transfer),进行编译链接后,能够正常执行。

& p# e5 |+ I- f4 l% b! \2 v0 k5 [
比对两者间的工程配置,发现在 RAM 分配上存在差异。下图为 STM32CubeMX 生成工程中,对应的 RAM 分配情况。与此对应,例程中 RAM 分配至 IRAM2 (0x24000000)。
+ r7 m. Q$ @2 f) M" c) Y! F

5 k2 D: M, r' @2 ?2 r
............

# d! T: J3 D, Z" p8 n8 Y+ s
想了解更多,请下载原文阅读
& a" }0 b2 ], q, E
收藏 1 评论1 发布时间:2019-3-19 09:51

举报

1个回答
Kevin_G 回答时间:2019-3-19 12:27:09
已收藏

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版