您好!
我在 RxFifo 的从模式下使用 SPI 时遇到问题。
在我的应用程序中,我可以有一个先前的中断(用于控制电机)。
然后、对于 SPI 从器件接收数据时配置的 SPI 中断、它可以在主器件之前的中断完成时延迟。
因此、我可以在真正发生中断之前接收许多 SPI 数据。
然后我使用 Rx FIFO。 RXFILL 设置为1。
但我观察到一些行为:
-在接收到的第一个数据上、通过将 RXFFST 设置为1来设置 SPI_O_DAT 寄存器。 在这种情况下、我必须读取 DAT 寄存器、而不是返回虚拟值的 RXBUFF。
但我必须读取 RXBUFF 才能将 RXFFST 减少到0、从而不产生另一个中断。
为什么 SPI_O_DAT 寄存器不直接填充 RXBUF? 这是个问题、因为我必须测试 RXFFST、
if = 1 =>读取 DAT 和 RXBUFF 来清空 RXFFST
如果> 1:只读 RXBUFF 以获取第一个接收到的数据。
但是、如果在 RSFFST 测试和寄存器(RXBUF / DAT)读取之间接收到新字符、则会导致问题!
在 RXBuf Fifo 中正确使用 SPI 从器件的好方法是什么?
我找不到好的解决方案!
谢谢
