你(们)好
uint16_t READ_DATA[3]={0};
uint16_t RDATA=0;
uint16_t TXRXError=0;
uint32_t sData32=0、rData32=0;
SPI 配置如下
SPI_disableModule (mySPI0_BASE);
SPI_setConfig (mySPI0_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA0、SPI_MODE_MASTER、1000000、8);
SPI_enableFIFO (mySPI0_BASE);
SPI_setTxFifoTransmitDelay (mySPI0_BASE、0);
SPI_DisableHighSpeedMode (mySPI0_BASE);
// SPI_enableLoopback (mySPI0_BASE);
SPI_disableLoopback (mySPI0_BASE);
SPI_enableTalk (mySPI0_BASE);
SPI_DisableInterrupt (mySPI0_BASE、SPI_INT_TXFF);
SPI_setEmulationMode (mySPI0_BASE、SPI_emulation_free_run);///!set、这样断点不会干扰 xmission
SPI_enableModule (mySPI0_BASE);
主器件可以 通过验证 从器件的第二个响应来验证从器件接收到的数据是否正确。
我 将向从器件发送相同的24位数据两次、以从 器件获得24位的响应。 我正在比较前24位发送数据与第二次接收到的24位数据、但我没有得到正确的数据。
我在接收数据时缺少一些内容。
SPI_transmit24Bits (mySPI0_BASE、sData32、0);
SPI_transmit24Bits (mySPI0_BASE、sData32、0);
Read_data[0]= SPI_readRxEmulationBuffer (mySPI0_BASE);
Read_data[1]= SPI_readRxEmulationBuffer (mySPI0_BASE);
Read_data[2]= SPI_readRxEmulationBuffer (mySPI0_BASE);
RDATA = READ_DATA[1]<<8;
RDATA = RDATA | READ_DATA[2];
提前感谢

