[STM32G4] SPI通信偶发丢字节,怀疑是DMA冲突

[复制链接]
180|10
万图 发表于 2025-10-16 07:55 | 显示全部楼层 |阅读模式
用SPI+DMA模式传数据,主机是MCU,偶尔接收的数据前几个字节会错位。逻辑分析仪上看时序没乱,像是DMA启动时机偏了一点。换成中断模式就正常,但效率太低。
Clyde011 发表于 2025-10-16 08:00 | 显示全部楼层
是不是用了半字节传输模式?那会错位。
公羊子丹 发表于 2025-10-16 08:01 | 显示全部楼层
我之前加了一个小延时再开DMA就稳定了。
周半梅 发表于 2025-10-16 08:01 | 显示全部楼层
是不是TX和RX DMA通道优先级没设好?
帛灿灿 发表于 2025-10-16 08:02 | 显示全部楼层
有的HAL版本SPI DMA有bug,升级库试试。
童雨竹 发表于 2025-10-16 08:04 | 显示全部楼层
SPI空闲标志位判断太早也会导致错位。
 楼主| 万图 发表于 2025-10-16 08:05 | 显示全部楼层
检查一下DMA缓存区是不是被重用了。
Wordsworth 发表于 2025-10-16 08:05 | 显示全部楼层
G4系列的DMA挺快,时机没对齐就会错。
Bblythe 发表于 2025-10-16 08:06 | 显示全部楼层
我后来直接手动触发DMA,用事件同步。
Pulitzer 发表于 2025-10-16 08:07 | 显示全部楼层
逻辑分析仪看到没问题但DMA乱,真头疼。
Uriah 发表于 2025-10-16 08:08 | 显示全部楼层
可以考虑用双缓冲DMA,切换更安全。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

6293

帖子

1

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