k64 spi2+dma 做从机和stm32通信,调用DSPI_MasterTransferEDMA(EXAMPLE_DSPI_MASTER_BASEADDR, &g_dspi_edma_m_handle, &masterXfer)后返回值不是kStatus_Success,是kDSPI_Busy,一直打印There is error when start DSPI_SlaveTransferEDMA,代码如下stm32这边程序是没问题的,此程序是按照库里面demo修改的,求解,谢谢,

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

k64 spi2+dma 做从机和stm32通信,调用DSPI_MasterTransferEDMA(EXAMPLE_DSPI_MASTER_BASEADDR, &g_dspi_edma_m_handle, &masterXfer)后返回值不是kStatus_Success,是kDSPI_Busy,一直打印There is error when start DSPI_SlaveTransferEDMA,代码如下stm32这边程序是没问题的,此程序是按照库里面demo修改的,求解,谢谢,

686 Views
shengzhang
Contributor I

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

}

Tags (1)
0 Kudos
1 Reply

545 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos