是否有人有示例代码在stm32的DMA循环模式下使用SPI传输数据?(16位) 使用我的代码,主设备发送16位数据,并在下一个周期接收答案。但是此事务延迟了一个周期。
答案 0 :(得分:1)
SPI应该可以那样工作。
首次写入SPI数据寄存器时,它开始发送数据,并立即向DMA控制器发送信号,表明它已准备好接收下一个数据字。现在,发送器刚开始接收第一个数据字时,发送器中就有两个数据字。当第一个输出字被完全发送并且第一个输入字被完全接收(它们几乎同时发生)时,SPI开始发送已经在数据寄存器中的第二个字,向发送DMA通道发送信号,表明它已准备好第三个数据字,大约在同一时间,它还向接收通道发送信号,告知第一个输入数据字已准备就绪。