DMA (Direct Memory Access): 无需CPU直接控制传输,通过硬件为RAM与I/O设备开辟直接传输数据的通道,提高系统效率。
notion image

STM32F4 DMA特性

  • STM32F4具有2个DMA控制器 (DMA1和DMA2),共16个数据流 (每个控制器8路),每个数据流有8个通道,大部分外设均可通过DMA控制。
  • 四种传输方式:
    • 外设到内存
    • 内存到外设
    • 内存到内存
    • 外设到外设
  • 需要设置:源地址、目标地址、传输数据类型/长度。

DMA结构

包括DMA控制器、通道请求、仲裁器、流控制器、FIFO、AHB主从接口等。
notion image

DMA应用

  • 高速AD采样,数据批量处理。
  • 任意波形发生器,表格数据直接送DA转换。

DMA应用设计:UART1接收数据到SRAM

  1. 选择DMA:根据DMA请求映射表,选择DMA控制器、数据流和通道 (如DMA2 Stream5 Channel4 for USART1_RX)。
  1. 获取地址:USART1数据寄存器地址 (&USART1->DR),SRAM目标缓冲区地址。
  1. 编程:
      • 串口初始化。
      • DMA初始化 (DMA_InitTypeDef):
        • 使能DMA时钟。
        • 配置:通道、外设基地址、内存基地址、传输方向 (外设到内存)、缓冲区大小、外设/内存地址是否自增、外设/内存数据宽度、模式 (普通/循环)、优先级、FIFO模式及阈值、内存/外设突发传输。
        • DMA_Init()
        • (可选)配置DMA中断。
        • DMA_Cmd()使能DMA流。
  1. 中断程序:如 DMA2_Stream5_IRQHandler,判断中断状态 (DMA_GetITStatus()),处理数据,清中断标志 (DMA_ClearITPendingBit())。
Loading...
Z_cosy
Z_cosy
浙江大学电气工程学院本科生
公告
🎉Welcome to Z-cosy🎉
-- 食用指南 ---
目前只有课程笔记以及电控学习笔记
陆续会整理更多内容!