使用SPI模组与设备通讯时,直接调用系统API函数:SPIM_1_WriteTxData(Data16);时,发现数据从机无法接收。
解决对策: 发送或接收器清空接收或发送缓冲区,发送或接收完记得清FIFO。这几个函数为:
SPIM_1_ClearRxBuffer(); //清接收缓冲区
SPIM_1_ClearTxBuffer(); //清除发送缓冲区
SPIM_1_ClearFIFO() ; //清FIFO
例:
SPIM_1_ClearTxBuffer(); //发送前清除发送缓冲区
SPIM_1_WriteTxData(Data16); //通过SPI主机模块把16位数据送出去
while(!(SPIM_1_ReadStatus() & SPIM_1_STS_TX_FIFO_EMPTY))
{
;
}
SPIM_1_ClearFIFO() ; //清FIFO |