stm32U5A9配置USART+DMA

stm32U5A9配置USART+DMA

STM32U5 的 GPDMA (General-Purpose DMA) 是新一代高性能、全功能通用 DMA 控制器,专为复杂、高带宽、低功耗场景设计。它彻底重构了传统 DMA 架构,集成 DMAMUX + 支持链表 + 2D 寻址 + 双 AHB 端口 + 自主传输 ,是 STM32U5 性能与低功耗的核心支柱

一、核心定位与架构

1. 与 LPDMA 的分工(U5 独有双 DMA)

  • GPDMA高性能域 (CPU 域),跑主时钟,全功能、高带宽
    *
    • 负责:LCD、Camera、Octo-SPI、eMMC、高速 ADC/DAC、内存拷贝
  • LPDMA低功耗域 ,可在 Stop 0/1 下工作
    *
    • 负责:LPUART、SPI、I2C、定时器等低速外设,主打超低功耗

2. 总线架构(双 AHB 主端口)

  • Port 0 :推荐访问 外设寄存器 (APB/AHB)
  • Port 1 :推荐访问 内存 (SRAM、Flash、Octo-SPI、eMMC)
  • 优势:并行传输、总线冲突最小化、带宽翻倍

二、通道与硬件规格(STM32U5 典型)

1. 通道总数与分组

  • 共 16 个独立通道 (GPDMA1)
  • 分组(关键差异)

表格

2. 核心能力

  • 4 种传输方向
    *
    • 外设 → 内存
    • 内存 → 外设
    • 内存 → 内存
    • 外设 → 外设 (U5 新支持)
  • 数据宽度字节 (8)、半字 (16)、字 (32)
  • 突发长度 :1/4/8/16 个数据单元(AHB 突发优化)
  • 块最大长度65535 字节 (BNDT 16bit)
  • 优先级 :每通道 8 级可编程 (硬件仲裁)

三、革命性特性(U5 GPDMA 重点)

1. 原生集成 DMAMUX(不再外挂)

  • 128 个外设请求 → 任意映射到任意 GPDMA 通道
  • 支持:硬件触发、软件触发、事件触发
  • 彻底告别 "通道与外设固定绑定" 的历史

2. 链表传输(Linked-List, LLI)

  • 每个通道支持 内存链表 :多个传输节点自动串联
  • 每个节点(LLI)含:
    *
    • 源 / 目标地址
    • 长度、数据宽度、突发
    • 下一个节点指针
    • 中断 / 触发配置
  • 无需 CPU 干预 完成复杂多段传输(如循环采集、帧缓冲刷新)

3. 2D 寻址(仅 Ch12~15)

  • 支持 行 / 列偏移(Stride)
  • 典型用途:
    *
    • LCD 显存刷新(只刷新局部矩形)
    • 图像裁剪、旋转、去隔行
    • 二维数组 / 缓冲区拷贝
  • 配置:突发偏移 + 块偏移 (有符号)

4. 安全与特权(STM32U5 特色) STMicroelectronics

  • SECCFGR :通道安全属性(TrustZone)
  • PRIVCFGR :特权 / 非特权访问控制
  • RCFGLOCKR :锁定安全配置(防篡改)

5. 自主模式(Autonomous Mode) STMicroelectronics

  • Stop 0/Stop 1 低功耗模式下仍可工作
  • 定时器触发 → GPDMA 搬运 → 无需 CPU 唤醒
  • 适合:周期性传感器采集、低功耗数据记录
  • 特性(U5 GPDMA 重点)

1. 原生集成 DMAMUX(不再外挂)

  • 128 个外设请求 → 任意映射到任意 GPDMA 通道
  • 支持:硬件触发、软件触发、事件触发
  • 彻底告别 "通道与外设固定绑定" 的历史

2. 链表传输(Linked-List, LLI)

  • 每个通道支持 内存链表 :多个传输节点自动串联
  • 每个节点(LLI)含:
    *
    • 源 / 目标地址
    • 长度、数据宽度、突发
    • 下一个节点指针
    • 中断 / 触发配置
  • 无需 CPU 干预 完成复杂多段传输(如循环采集、帧缓冲刷新)

3. 2D 寻址(仅 Ch12~15)

  • 支持 行 / 列偏移(Stride)
  • 典型用途:
    *
    • LCD 显存刷新(只刷新局部矩形)
    • 图像裁剪、旋转、去隔行
    • 二维数组 / 缓冲区拷贝
  • 配置:突发偏移 + 块偏移 (有符号)

4. 安全与特权(STM32U5 特色)

  1. SECCFGR :通道安全属性(TrustZone)
  2. PRIVCFGR :特权 / 非特权访问控制
  3. RCFGLOCKR :锁定安全配置(防篡改)

5. 自主模式(Autonomous Mode)

  • Stop 0/Stop 1 低功耗模式下仍可工作
  • 定时器触发 → GPDMA 搬运 → 无需 CPU 唤醒
  • 适合:周期性传感器采集、低功耗数据记录

使用stm32cubex打开usart1

使能串口中断

跳转到GPDMA1并配置收发

生成代码,后能能串口IDLE中断

再添加回调函数callback,在函数里面重新使能接收

相关推荐
踏着七彩祥云的小丑2 小时前
嵌入式——认识电子元器件——三极管系列
单片机·嵌入式硬件
快乐的划水a2 小时前
单片机仿Linux驱动开发(二)
linux·驱动开发·单片机
wearegogog1232 小时前
基于STM32的物联网系统设计
stm32·嵌入式硬件·物联网
Jason_zhao_MR2 小时前
基于米尔RK3576核心板的国产割草机器人解决方案
大数据·linux·人工智能·单片机·物联网·机器人·嵌入式
FreakStudio11 小时前
做了个Claude Code CLI 电子宠物:程序员的实体监工代码搭子
python·单片机·嵌入式·面向对象·并行计算·电子diy·电子计算机
芯岭技术13 小时前
PY32L020系列32位MCU,超低功耗、高性价比,支持三种低功耗模式
单片机·嵌入式硬件
危桥带雨17 小时前
RTC理论知识
stm32·单片机·嵌入式硬件·实时音视频
ElfBoard20 小时前
飞凌精灵(ElfBoard)技术贴|如何在RK3506开发板上实现UART功能复用
大数据·linux·人工智能·驱动开发·单片机·嵌入式硬件·物联网
踏着七彩祥云的小丑20 小时前
嵌入式——认识电子元器件——二极管系列
单片机·嵌入式硬件