STM32_DMA原理特性

本文介绍了STM32的DMA工作原理,包括其双AHB主总线架构、8个数据流和8个通道等特点。STM32F4的DMA支持外设到存储器、存储器到外设及存储器到存储器的传输,具备独立的源和目标传输宽度,支持循环缓冲区管理和多种中断请求。详细阐述了如何配置DMA数据流,包括地址递增、循环模式、数据项数目以及中断请求等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DMA,直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。
STM32F4 最多有 2 个 DMA 控制器(DMA1 和 DMA2),共 16 个数据流(每个控制器 8 个),每一个 DMA 控制器都用于管理一个或多个外设的存储器访问请求。每个数据流总共可以有多达 8个通道(或称请求)。每个数据流通道都有一个仲裁器,用于处理 DMA 请求间的优先级.

STM32F4 的 DMA 特性:

  • 双 AHB 主总线架构,一个用于存储器访问,另一个用于外设访问
  • 每个 DMA 控制器有 8 个数据流,每个数据流可以有多达 8 个通道(或称请求)
  • 每个数据流有单独的四级 32 位先进先出存储器缓冲区(FIFO),可用于 FIFO 模式或直接模式。
  • 通过硬件可以将每个数据流配置为:
    (1)支持外设到存储器、存储器到外设和存储器到存储器传输的常规通道
    (2)支持在存储器方双缓冲的双缓冲区通道
  • 8 个数据流中的每一个都连接到专用硬件 DMA 通道(请求)
  • DMA 数据流请求之间的优先级可用软件编程(4 个级别:非常高、高、中、低),在软件优先级相同的情况下可以通过硬件决定优先级(例如编号低的通道优先,请求 0 的优先级高于请求 1) [DMA_SxCR寄存器的PL[17:16]控制 ]
  • 每个数据流也支持通过软件触发存储器到存储器的传输(仅限 DMA2 控制器)
  • 可供每个数据流选择的通道请求多达 8 个。此选择可由软件配置,允许几个外设启动DMA 请求
  • 要传输的数据项的数目可以由 DMA 控制器或外设管理:
    (1)DMA 流控制器:要传输的数据项的数目是 1 到 65535,可用软件编程
    (2)外设流控制器:要传输的数据项的数目未知并由源或目标外设控制,这些外设通过硬件发出传输结束的信号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值