主题中讨论的其他器件:C2000WARE
您好!
我将使用 SPI 的 SPI-C 实例、它在不处于 FIFO 模式时工作正常。 数据宽度为8位。 无中断、无 DMA。
当配置为 FIFO 模式(我执行四项设置:SPIFFENA=1、TXFIFO=1、RXFIFORESET=1、SPIFFTX.SPIRST=1)时、我向 SPITXBUF 寄存器写入8个字节、逐个写入而没有任何代码延迟。 (我是否应该在此处添加延迟?)
最后、我看到 RSFFST 值设置为8。 这说明我已经接收到8个字节。 我相信、要读取缓冲区、我应该读取 SPIRXBUF 8次? 当我执行该操作时、我将为所有8个字节获取相同的数据。 我知道这是不正确的、因为我可以在不处于 FIFO 模式时看到正确的数据。 在 FIFO 模式下、我也可以看到正确的数据、但数据每次发送并写入一个字节。 但是、当8个字节一起写入时、我看到为所有8个字节读取了相同的值。 我看到 SPIFFRX.RXFFST 值在我读取这些值时不断递减、最终会变为零、但读取的值是相同的。
感谢任何帮助。
此外、我绝不会在"Registers"窗口中看到 TXFFST 设置为除零以外的任何值。 这可能是因为数据一旦被写入 SPITXBUF 寄存器就在引脚上发送。 请告诉我这种理解是否正确、我将无法在寄存器窗口中看到 TXFFST 上的任何其他值。
谢谢你。