void SPI2_Slave_Transfer(uint8_t *txdata,uint8_t *rxdata,uint8_t size)
{
dspi_transfer_t slaveXfer;
isTransferCompleted = false;
/* Set slave transfer ready to receive/send data */
slaveXfer.txData = txdata;
slaveXfer.rxData = rxdata;
slaveXfer.dataSize = size;
slaveXfer.configFlags = kDSPI_SlaveCtar0;
#if 1
/* Set up slave,DMA mode*/
if (kStatus_Success != DSPI_SlaveTransferEDMA(EXAMPLE_DSPI_SLAVE_BASEADDR, &g_dspi_edma_s_handle, &slaveXfer))
{
PRINTF("There is error when start DSPI_SlaveTransferEDMA \r\n");
}
#endif
}
Hi,
I would recommend customer to refer [dspi_edma_b2b_transfer_slave] demo at MCUXpresso SDK software for FRDM-K64F.
The project default path is :
..\SDK_2.3.0_FRDM-K64F\boards\frdmk64f\driver_examples\dspi\edma_b2b_transfer\slave
It needs to initialize the DMA MUX module and eDMA module before call the DSPI_SlaveTransferCreateHandleEDMA() function.
And It also need to initialize SPI slave related pins.
Wish it helps.
Have a great day,
Mike
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------