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

STM32H7 DMA 传输异常案例分析

[复制链接]
STMCU小助手 发布时间:2022-8-4 22:44
前言 ' y) a" ]- s% _2 k& Z
利用 ST 提供的辅助开发工具 STM32CubeMX,可以快速开发 STM32 应用。在本文中讨论的 ADC 应用,同样是建立在STM32CubeMX 生成工程的基础上。具体为在 STM32H743ZI 上,利用 DMA 自动实现 ADC 数据周期采集和转移,在采集指定数量的采样值后产生中断,对数据进行处理。; C: t; s7 t, z$ t$ m; }' X  m
文中仅对上述实现过程中出现的一种异常,进行介绍和分析。不涉及具体的 ADC 采集和处理实现的介绍。 - [# V1 I! T; Z/ X+ B/ e, n) w( p. V

  O- E! D; V/ D9 |5 ]$ {) q) ^, w6 Q
$ X( R0 c- A: F! `' t
一 实验环境
  J+ V; O0 V! N$ |7 t硬件平台:Nucleo-H743ZI  W( v0 o9 f! D% G) F* Y
STM32CubeMX 版本:v4.28.0
3 ^4 ?- \; E) e' QSTM32CubeH7 版本:v1.2.0
: ^- O7 V6 G: w; N5 n9 N* U! b& BIDE: MDK-ARM v5.25.2.0 (优化级别 Level3)
' b" D+ ]9 b1 I; |3 |. H首先利用 STM32CubeMX 生成 ADC 应用的初始化工程,涉及的配置如下所示:- ~6 u4 C- d$ N5 t) }5 b

% [/ D' a* f# e) o

0 L- h* {2 C5 k' K( t. f* Q$ ^ %%[$X)QE7O3J$YFLVF}AGND.png
: K: A* F# H1 |8 m3 E' l' m5 f8 v$ J

& G! z/ j9 K# A/ ]& I然后在工程中增加对 ADC 周期采集和 DMA 传输实现的命令,如下所示。并且增加回调函数内容,本文中实现仅添加了空指令。在调试过程中,在空指令处增加断点,判断 ADC DMA 传输半完成和传输完成中断是否正常进入。
$ f7 o: l$ @# s, `3 {7 b4 F; ^# H" I! ^( i& }+ H
}RQXD[]RPB6H]RJK~}C`75Q.png 0 T* a% w& `! G/ y8 H& U
9 s( T5 \* W, T
7 Q2 l2 S, u8 _; ^5 k- n/ ~7 y
注: 如果在编译链接的过程中,出现没有定义 ECC_IRQn 提示,需将 stm32h7xx_hal_msp.c 中对
! P2 O( }/ G. A) X2 R0 MHAL_NVIC_SetPriority(ECC_IRQn, 0, 0);的调用移除。8 M  {) ~' F9 _$ D/ x) c6 n' i; G

2 P; }3 N$ r) n) r! `+ _

6 b  v# n2 u0 S# P0 `二 异常现象
/ _4 f$ t/ t- k0 W+ m: r4 ~- K在运行过程中,无法进入 HAL_ADC_ConvHalfCpltCallback 和 HAL_ADC_ConvCpltCallback 回调函数(分别对应 DMA传输半完成和传输完成回调函数)。
1 A$ ~8 o8 n( o8 w- D4 ?- V  j跟踪中断服务函数,发现在首次 DMA1 传输后,DMA_LISR 寄存器值为 0x8。即 TEIF0 置位,Stream 0 出现传输错误。
# e$ V2 R7 _$ ^# s   @6 [' L3 `8 v$ }
  M. c# h. n: t6 s
完整版请查看:附件
4 M) Q6 u( |" }$ e/ l6 Q" Q: ^0 w: A/ J3 r/ f
5 L' }, u# F4 G: f6 A

# i4 A. g% L4 b! B/ f

STM32 DMA abnormal transmission.pdf

下载

971.18 KB, 下载次数: 7

赞 收藏 评论0 发布时间:2022-8-4 22:44

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版