|
使用 STM32F2 和 STM32F4 DMA 控制器 前言 5 c8 ~0 t5 } A0 W7 L. Y8 D 本应用笔记对如何使用 STM32F2xx 和 STM32F4xx 系列直接存储器访问控制器 (DMA)进行了说明。STM32F2xx/F4xx DMA 控制器所具有的系统架构、多层总线矩阵和存储系统等,使其能够为应用提供很高的数据带宽,让用户可以开发出响应迅速的应用软件。 . @( Y) O& O4 L" \% X8 L0 } 本应用笔记还提供了一些使用DMA的技巧,以便开发者能够充分利用STM32F2和STM32F4DMA 的特性来为不同的外设和子系统的 DMA 请求保证足够快的响应时间。 " f3 i! V. R7 m1 @' y $ _- _% N5 V0 O, ?+ ` 本文档中,使用 "STM32F2/F4 设备 " 代替 STM32F2xx 和 STM32F4xx,使用 “DMA” 代替DMA 控制器。 , J/ G7 \; `; [! V8 N" G- d 本应用笔记适用于表 1 中所列产品。 2 \4 O" S z$ G( ~( }
本应用笔记应与 STM32F2/F4 参考手册 (RM0031、 RM0090 和 RM0368)共同阅读使用。 2 x$ y c) s6 m+ L' y% G: n1 DMA 控制器说明 DMA 是一种 AMBA 先进高性能总线 (AHB)模块,它具有三个 AHB 端口:1 个用于 DMA编程的从端口和 2 个允许 DMA 在从模块之间进行数据传输的主端口(外设和存储器端口)。 DMA 使得数据传输在后台进行,而无需 Cortex-Mx 处理器干预。在数据传输过程中,主处理器能够执行其他任务,仅当需要处理一个完整数据块时才会被中断。 可以在不显著影响系统性能的情况下进行大量数据的传输。DMA 主要用于实现不同外设模块的集中数据缓冲存储 (通常在 SRAM 中)。在分布式方案中,每个外设均需实现其各自的本地数据存储,该解决方案从硅片面积的使用和功耗方面来说是比较便宜的。 STM32F2/F4 DMA 控制器充分利用了 Cortex-Mx 哈佛结构和多层总线系统的优势,保证了DMA 传输和 CPU 中断响应的及时性。 1.1 DMA 传输属性DMA 传输的属性如下: - D9 b1 v* k2 M7 P5 w• DMA 数据流 / 通道 : N0 [( P7 Q/ Q4 u• 数据流优先级 # [' V' `/ f3 Y* d• 源和目标地址 $ j/ e% V' H" m$ @• 传输模式 . k0 r* O5 ?3 o7 M6 F8 b8 Y• 传输数据量大小 (仅当 DMA 为流量控制器时) 9 M3 Z8 y4 Q: g0 _% D3 j: v+ ]• 源 / 目标地址递增或非增 • 源和目标数据宽度 5 Q- C. `2 }5 ]& Q• 传输类型 2 u c% Z( S% J" O• FIFO 模式 , @+ S# X# n5 B• 源 / 目标批量传输数据量大小 8 W2 \# U- x- X# j4 P; Q- y• 双缓冲区模式 6 I, H3 V2 o* M" c5 Y, B3 Q• 流控 STM32F2/F4 器件集成了 2 个 DMA 控制器,每个 DMA 有两个端口,一个外设端口和一个存储器端口,它们可以同时工作。 ; a ?- l3 a& J5 M1 {图 1 显示了 DMA 框图。
& N- M+ p( ?( h3 a0 e& L1 I* P6 u8 i |
| 谢谢楼主分享 |
不错不错! |
基于STM32F767通过cube配置:QSPI接口读写64M PSRAM+flash参考资料...
STM32F746G-DISCO移植lvgl9.0性能基准测试
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
微信公众号
手机版