打印

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

[复制链接]
897|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ml12138|  楼主 | 2025-3-17 17:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用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 | 只看该作者
硬件问题

使用特权

评论回复
5
powerantone| | 2025-3-18 18:00 | 只看该作者
考虑使用DMA中断而不是轮询来检测传输完成。配置DMA中断可以使CPU在等待DMA完成时不被阻塞,提高效率。
在DMA初始化时启用传输完成中断,并在中断服务例程中处理数据。

使用特权

评论回复
6
probedog| | 2025-3-18 19:00 | 只看该作者
检查是否有代码或硬件事件禁用了DMA请求。

使用特权

评论回复
7
stormwind123| | 2025-3-18 21:00 | 只看该作者
用DMA_FLAG_TC来检测整个DMA传输是否完成。

使用特权

评论回复
8
classroom| | 2025-3-18 22:00 | 只看该作者
检查SPI总线上的硬件连接,包括MISO、MOSI、SCK和CS信号线的连接是否正确。

使用特权

评论回复
9
xionghaoyun| | 2025-3-19 08:52 | 只看该作者
是不是没清除标志位

使用特权

评论回复
10
ml12138|  楼主 | 2025-3-20 17:04 | 只看该作者
问题已解决,是配置出了问题,感谢大家的回复

使用特权

评论回复
11
FranklinUNK| | 2025-3-20 21:42 | 只看该作者
DMA有问题吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝