[STM32H7] DMA传输偶尔中途停住,好像“卡”在半路

[复制链接]
67|10
Uriah 发表于 2025-11-13 07:16 | 显示全部楼层 |阅读模式
DMA做内存到SPI传输时,偶尔会传到一半停掉,DMA状态寄存器显示还在忙,但SPI没继续输出。重启任务能恢复。感觉像是总线仲裁问题或者FIFO卡住。
Clyde011 发表于 2025-11-13 07:19 | 显示全部楼层
试试改成双缓冲模式,我那时候这样解决的。
公羊子丹 发表于 2025-11-13 07:20 | 显示全部楼层
H7的DMA挺复杂的,有时候要加缓存同步。
周半梅 发表于 2025-11-13 07:21 | 显示全部楼层
你用了AXI总线吗?缓存没刷新的话会出问题。
帛灿灿 发表于 2025-11-13 07:22 | 显示全部楼层
我以前遇到过,改成DMA2通道就没事了。
童雨竹 发表于 2025-11-13 07:23 | 显示全部楼层
可能是SPI的TX空标志没触发DMA继续。
万图 发表于 2025-11-13 07:24 | 显示全部楼层
检查一下是不是优先级太低被打断。
Wordsworth 发表于 2025-11-13 07:25 | 显示全部楼层
H7系列对cache一致性特别敏感,记得加SCB_CleanDCache。
Bblythe 发表于 2025-11-13 07:26 | 显示全部楼层
我觉得可以开调试口看DMA状态位。
Pulitzer 发表于 2025-11-13 07:27 | 显示全部楼层
有时FIFO模式不太兼容,关掉看看。
 楼主| Uriah 发表于 2025-11-13 07:28 | 显示全部楼层
我猜是任务调度延迟导致SPI空闲。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

182

主题

6521

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部