使用 STM32F2 和 STM32F4 DMA 控制器 前言 本应用笔记对如何使用 STM32F2xx 和 STM32F4xx 系列直接存储器访问控制器 (DMA)进行了说明。STM32F2xx/F4xx DMA 控制器所具有的系统架构、多层总线矩阵和存储系统等,使其能够为应用提供很高的数据带宽,让用户可以开发出响应迅速的应用软件。 本应用笔记还提供了一些使用DMA的技巧,以便开发者能够充分利用STM32F2和STM32F4DMA 的特性来为不同的外设和子系统的 DMA 请求保证足够快的响应时间。 本文档中,使用 "STM32F2/F4 设备 " 代替 STM32F2xx 和 STM32F4xx,使用 “DMA” 代替DMA 控制器。 0 I4 R0 y& ]" E9 Z- _ p ! j2 ^5 u; H8 j& m# W 本应用笔记适用于表 1 中所列产品。 j- H8 b7 Z2 q6 p 本应用笔记应与 STM32F2/F4 参考手册 (RM0031、 RM0090 和 RM0368)共同阅读使用。 0 s2 j: W" N9 B) r3 w& ]8 N/ {: V1 DMA 控制器说明 8 n9 F9 O" W- ^! @1 v( Q! z0 xDMA 是一种 AMBA 先进高性能总线 (AHB)模块,它具有三个 AHB 端口:1 个用于 DMA编程的从端口和 2 个允许 DMA 在从模块之间进行数据传输的主端口(外设和存储器端口)。 DMA 使得数据传输在后台进行,而无需 Cortex-Mx 处理器干预。在数据传输过程中,主处理器能够执行其他任务,仅当需要处理一个完整数据块时才会被中断。 可以在不显著影响系统性能的情况下进行大量数据的传输。DMA 主要用于实现不同外设模块的集中数据缓冲存储 (通常在 SRAM 中)。在分布式方案中,每个外设均需实现其各自的本地数据存储,该解决方案从硅片面积的使用和功耗方面来说是比较便宜的。 m5 O! L; m* r4 ZSTM32F2/F4 DMA 控制器充分利用了 Cortex-Mx 哈佛结构和多层总线系统的优势,保证了DMA 传输和 CPU 中断响应的及时性。 7 n8 O0 X2 Q# u4 R o5 O6 T# p1.1 DMA 传输属性DMA 传输的属性如下: • DMA 数据流 / 通道 ; D- M; u1 P7 b1 z# [• 数据流优先级 & N/ Y! }8 f) T5 g1 q( F' i• 源和目标地址 • 传输模式 • 传输数据量大小 (仅当 DMA 为流量控制器时) • 源 / 目标地址递增或非增 - e, U) y7 n( ]) c0 t& P• 源和目标数据宽度 * q$ V, \' a$ M1 v0 U• 传输类型 • FIFO 模式 • 源 / 目标批量传输数据量大小 / N! A: v+ w" ]1 _. e' `9 c• 双缓冲区模式 • 流控 5 }' w. a7 D. ^& J; ZSTM32F2/F4 器件集成了 2 个 DMA 控制器,每个 DMA 有两个端口,一个外设端口和一个存储器端口,它们可以同时工作。 5 K3 y8 |1 c2 Z X4 K( T# v图 1 显示了 DMA 框图。 ; W6 n, {. h1 M / z# a. u2 \: @" R* ^# M, Z5 D: g4 i" U6 K$ r5 X |
谢谢楼主分享 |
不错不错! |
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32固件库分享,超全系列整理
STM32F4中文用户手册
基于STM32F746G-Discover的扩展电路板
【合集】STM32F7教程、资料大集合
基于STM32F407的FreeRTOS阶段性的总结(13)
F769 Discovery实现播放U盘音乐的播放器
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)