[STM32H7] STM32H7 HAL 库 SPI DMA 无法接收数据

[复制链接]
335|68
mikewalpole 发表于 2026-4-10 15:48 | 显示全部楼层
从阻塞转向 DMA 最容易踩的坑。
minzisc 发表于 2026-4-10 19:08 | 显示全部楼层
如何防止单片机缓存干扰DMA数据读取?
mollylawrence 发表于 2026-4-10 20:41 | 显示全部楼层
DMA与SPI初始化时序              
maqianqu 发表于 2026-4-10 22:41 | 显示全部楼层
开了 几个 DMA 通道?              
i1mcu 发表于 2026-4-11 09:42 | 显示全部楼层
先跑通单次传输,再考虑循环模式。
earlmax 发表于 2026-4-11 15:16 | 显示全部楼层
环形缓冲区实现              
alvpeg 发表于 2026-4-11 16:03 | 显示全部楼层
单次传输用DMA_NORMAL              
qiufengsd 发表于 2026-4-12 22:49 | 显示全部楼层
建议使用逻辑分析仪捕获SPI信号
线稿xg 发表于 2026-4-13 16:49 | 显示全部楼层
在cubemx中重新生成DMA配置代码,主要是确认配置参数是否正确,如通道、优先级、数据宽度等是否与预期一致。对比差异点,注意是否有遗漏或错误的设置。
benjaminka 发表于 2026-4-15 16:24 | 显示全部楼层
为什么全是 0x00 而不是随机数?
geraldbetty 发表于 2026-4-15 17:33 | 显示全部楼层
DMA和SPI的时序如何配合?              
primojones 发表于 2026-4-15 18:13 | 显示全部楼层
DMA方向配置错误              
未来AI 发表于 2026-4-16 18:36 | 显示全部楼层
修改DMA优先级时,确保先设置正确的配置参数,然后再调用初始化函数,这样DMA才能以高优先级运行。
belindagraham 发表于 2026-4-17 13:39 | 显示全部楼层
如果在传输期间,MISO 线上一直是一条直线,说明从机没发数据,或者你的采样相位错了。
yorkbarney 发表于 2026-4-18 10:52 | 显示全部楼层
检查 DMA 的方向与地址              
鹿鼎计 发表于 2026-4-20 12:51 | 显示全部楼层
FIFO(先进先出队列)用于提高数据处理效率,即便关闭也能正常进行数据收发。
LLGTR 发表于 2026-4-22 09:27 | 显示全部楼层
检查DMA通道配置,确保匹配所需接收流的通道编号。
AutoMotor 发表于 2026-4-24 23:13 | 显示全部楼层
在DMA中断里,先接收数据,然后执行基本处理,确保数据传输无误。
星闪动力 发表于 2026-4-28 12:37 | 显示全部楼层
SPI是串行通信协议,需要时钟信号来同步数据传输。发送数据时产生时钟,接收数据时也需时钟信号。
yiyigirl2014 发表于 2026-4-28 15:34 | 显示全部楼层
用逻辑分析仪看 SCK/MOSI/MISO:
SCK 有没有脉冲?→ 主机没发时钟
MISO 有没有数据?→ 从机没发或硬件连接错


检查 Cache 配置:缓冲区放非缓存区或加 Invalidate
核对 DMA 方向、数据流、通道、关联
确认 SPI 模式(CPOL/CPHA)、数据位宽
主机必须 发 dummy 数据才能收
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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