AnsweredAssumed Answered

关于不清接收标志的情况下的SPI的发送

Question asked by w xx on Jan 24, 2018
Latest reply on Jan 29, 2018 by Daniel Martynek

关于SPI发送数据

芯片: MC9S12XE-Family

连续发送字节的情况下, 若我在确认到SPTEF=1后就立即向SPIDR写下一个发送字节, 并且不处理SPIF(也就是不读SPIDR, 使SPIF保持为1), 

那么, 第二个发送字节会不会被第一个接收字节给覆盖掉呢? 

 

也就是说, 我向SPIDR写入的发送字节, 和移位寄存器中的接收字节, 二者之间是如何交换的呢? 

 

 

单字节写入函数: 

 

static uchar SPI2_PushTxData (uint *wp_data)
{
uint TimeNum = 0u;

/* 等待发送空闲, 超时则放弃本次发送 */
while(SPI2SR_SPTEF == 0u)
{
TimeNum++;
if(TimeNum >= SPI2_TIMEOUT_CNT)
{
return SPI_FAIL; /* 超时, 退出本次数据发送,发送失败 */
}
}

/* 发送空闲: 可以把数据写入SPI0DRL, 该数据会在当前发送任务结束后立即被发送 */
SPI2DR = *wp_data;

return SPI_SUCCESS;
}

Outcomes