ml12138 发表于 2025-3-17 17:37

GD32F303CGT6用SPI-DMA接收数据卡死!!!

使用SPI协议通过DMA通道接收数据时一直卡在
while (dma_flag_get(DMA0, DMA_CH1, DMA_FLAG_FTF)==RESET);
江湖救急!!!
可以发源码

ml12138 发表于 2025-3-17 17:40

这个芯片是作为从机,接收来自相同芯片的主机发送过来的数据,此芯片只有一个SPI0——DMA0接收程序
在线等,急!!!!!!

flycamelaaa 发表于 2025-3-18 16:19

检查DMA和SPI配置是否有误。

duo点 发表于 2025-3-18 16:23

硬件问题

powerantone 发表于 2025-3-18 18:00

考虑使用DMA中断而不是轮询来检测传输完成。配置DMA中断可以使CPU在等待DMA完成时不被阻塞,提高效率。
在DMA初始化时启用传输完成中断,并在中断服务例程中处理数据。

probedog 发表于 2025-3-18 19:00

检查是否有代码或硬件事件禁用了DMA请求。

stormwind123 发表于 2025-3-18 21:00

用DMA_FLAG_TC来检测整个DMA传输是否完成。

classroom 发表于 2025-3-18 22:00

检查SPI总线上的硬件连接,包括MISO、MOSI、SCK和CS信号线的连接是否正确。

xionghaoyun 发表于 2025-3-19 08:52

是不是没清除标志位

ml12138 发表于 2025-3-20 17:04

问题已解决,是配置出了问题,感谢大家的回复

FranklinUNK 发表于 2025-3-20 21:42

DMA有问题吗

wh13651 发表于 2025-4-29 16:49

ml12138 发表于 2025-3-20 17:04
问题已解决,是配置出了问题,感谢大家的回复

请问是哪个地方配置有问题,我目前使用I2S配合DMA时也卡死在这里
页: [1]
查看完整版本: GD32F303CGT6用SPI-DMA接收数据卡死!!!