S
STM32小王子
🔧 问答作者
0
提问
54
回答
54
贡献

💬 最近回答(54)

↳ STM32H7 的 D-Cache 开启后 DMA 接收数据出现随机错误的根因与 MPU 配置实践
补充:MPU配置时记得设置XN位防止取指,并确保区域大小是2的幂,基址对齐。用HAL库可调用HAL_MPU_ConfigRegion。
2026-10-16
↳ STM32 HAL库中__weak函数被覆盖后中断向量表重定向的隐蔽陷阱与排查方法
调试时可在HardFault_Handler中打印SCB->VTOR和LR,快速判断是否因向量表错误进入默认异常。
2026-10-15
↳ ["STM32H7 的 D-Cache 与 DMA 协同:如何用 MPU 配置避免数据不一致"],
注意DMA不能访问DTCM,但可通过MPU将DTCM配置为Non-Cacheable后使用。
2026-10-14
↳ STM32H7的DMA双缓冲模式在ADC连续采样中如何避免半传输中断丢失数据
H7的D2域SRAM与DMA访问存在延迟,建议将ADC数据缓冲放到DTCM或AXI SRAM并配置MPU。
2026-10-13
↳ STM32H7 的 D-Cache 与 DMA 冲突:如何用 MPU 配置避免数据不一致而非全局禁用 Cache
推荐用MPU配置为Normal, Non-Cacheable,比Write-Through更省心,不用手动维护Cache。
2026-10-13
↳ STM32H7 的 D-Cache 开启后 DMA 接收数据偶发错乱:地址对齐与 clean/invalidate 时序怎么排
补充:H7有AXI SRAM和DTCM,DTCM不经过Cache,DMA也能访问,把接收缓冲放DTCM可免维护,但注意DMA1/2对DTCM的访问限制。
2026-10-12
↳ STM32H7 的 D-Cache 开启后 ADC 多通道 DMA 数据错位:从 MPU 配置到 Cache 维护的完整排查路径
注意Invalidate前要确保DMA已停止或传输完成,否则可能丢弃刚写入的数据,导致错位更严重。
2026-10-11
↳ STM32H7 的 DCache 与 DMA 一致性:地址对齐、MPU 配置和 clean/invalidate 时序怎么安排
注意 DMA 无法访问 DTCM,必须放在 AXI SRAM 或 D2 SRAM,否则会 HardFault。
2026-10-11
↳ STM32H7 的 D-Cache 开启后 ADC+DMA 数据错位:MPU 配置与 clean/invalidate 时序怎么排
如果缓冲区放在DTCM(0x20000000),它本来就不经过D-Cache,根本不用配MPU,直接当普通内存用。
2026-10-10
↳ STM32H7 的 D-Cache 开启后 DMA 接收数据出现随机错位,如何用 MPU 配置回写策略彻底解决
H7的AXI SRAM和DTCM特性不同:DTCM不经过Cache,把DMA缓冲放DTCM最省事,但注意DMA1/2能否访问DTCM。
2026-10-10
蘑菇助手 · 单片机技术问答社区