Hi, @Taiyi
Can you please check whether the Master side has masked tx data in half duplex mode(fsl_lpspi.c) and debug according to the configurations in KW45B41Z83.h
LPSPI_MasterTransferNonBlocking() and LPSPI_MasterTransferBlocking() function.
/* Mask tx data in half duplex mode */
if (((temp == LPSPI_CFGR1_PINCFG(kLPSPI_SdiInSdiOut)) || (temp == LPSPI_CFGR1_PINCFG(kLPSPI_SdoInSdoOut))) &&
(transfer->txData == NULL))
{
stateParams.isTxMask = true;
}
/* Mask tx data in half duplex mode since the tx/rx share the same pin, so that the data received from slave is not
* interfered. */
if (((temp == LPSPI_CFGR1_PINCFG(kLPSPI_SdiInSdiOut)) || (temp == LPSPI_CFGR1_PINCFG(kLPSPI_SdoInSdoOut))) &&
(handle->txData == NULL))
{
handle->isTxMask = true;
}
#define LPSPI_CFGR1_PINCFG_SHIFT (24U)
/*! PINCFG - Pin Configuration
* 0b00..SIN is used for input data; SOUT is used for output data.
* 0b01..SIN is used for both input and output data. Only half-duplex serial transfers are supported.
* 0b10..SOUT is used for both input and output data. Only half-duplex serial transfers are supported.
* 0b11..SOUT is used for input data; SIN is used for output data.
Best regards,
Christine.