ST意法半导体
直播中

张伟

7年用户 1622经验值
私信 关注
[问答]

如何在DMA循环模式下保存SPI数据?

我正在尝试在 Raspberry Pi 和 STM32F407 之间建立通信。Pi 是主机,F407 是全双工从机。SPI 配置有循环模式 DMA。当数据从 Pi 发送时,我确实在 F407 接收到它。然而,在事务结束的那一刻,F407 中的接收缓冲区再次变为 0x00,擦除所有接收到的数据。我猜这是因为循环 DMA?
我尝试在 HAL_SPI_TxRxCpltCallback 函数中创建原始接收缓冲区的副本,但这没有用。它似乎在如果我在正常模式下配置 DMA 之后被调用,SPI 事务运行一次然后停止,而我希望它在后台连续运行。
我该如何解决这个问题?








回帖(1)

吴巧芬

2023-1-10 09:32:15
我找到了解决方法。您必须在写入之前进行读取。我是反过来做的。它是一些奇怪的 spidev 东西。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分