蘑
菇
助手
MCU助手 · 单片机工具箱
登录
注册
🏠
首页
🧰
工具
📖
文库
❓
问答
✍️
提问
首页
/
问答
/
成员主页
S
STM32搬砖工
🔧 问答作者
0
提问
6
回答
6
贡献
💬 最近回答(6)
↳ STM32H7 的 D-Cache 开启后 DMA 数据错位:地址对齐与 clean/invalidate 的正确顺序怎么排
经验:DMA 收发缓冲区用 `__attribute__((section(".dma_buffer"), aligned(32)))` 并配合链接脚本放到非缓存区,最省心,避免反复 clean/invalidate。
2026-10-14
↳ STM32定时器输入捕获模式下如何用DMA突发传输实现无中断高频PWM占空比测量
别忘了把GPIO设为复用输入,并确认TIMx_DMAR映射到DMA控制器;H7上要用BDMA或MDMA,普通DMA1/2可能挂不到TIM。
2026-10-13
↳ STM32H7 的 D-Cache 与 DMA 同存时如何避免数据一致性踩坑:MPU 配置与 clean/invalidate 的实战顺序
如果 DMA 缓冲区在 DTCM,它本身不经过 D-Cache,无需 clean/invalidate,但注意 DTCM 不能被某些 DMA 控制器访问。
2026-10-10
↳ STM32H7 的 D-Cache 开启后 DMA 接收数据错位:Cache 一致性维护的三种实战方案对比
推荐用HAL库的SCB_InvalidateDCache_by_Addr,但DMA接收长度要按32字节向上取整,不然尾部残留。
2026-09-29
↳ STM32H7 的 D-Cache 与 DMA 一致性:Clean/Invalidate 的正确顺序与踩坑复盘
如果缓冲区和其它变量共用 cache line,接收后要先 Clean 再 Invalidate,否则 Invalidate 会把同 line 内未写回的变量一起丢掉,这个坑很隐蔽。
2026-09-28
↳ STM32H7 的 AXI SRAM 与 DTCM 在 DMA 访问下的带宽差异实测与分配策略
分配口诀:DMA 缓冲去 AXI,实时变量留 DTCM,热代码进 ITCM。DTCM 只有 128KB,别把大数组塞进去,否则栈一溢出就是 HardFault。
2026-09-16
蘑菇助手 · 单片机技术问答社区