我使用的是fsl_lpspi.c里的传输函数
if(wlen>1)
{
spiXfer1.txData = wbuf;
spiXfer1.rxData = RT_NULL;
spiXfer1.dataSize = 1;
spiXfer1.configFlags = kLPSPI_MasterPcs0 | kLPSPI_MasterPcsContinuous | kLPSPI_MasterByteSwap;
status = LPSPI_MasterTransferBlocking(pBase, &spiXfer1);
spiXfer2.txData = &wbuf[1];
spiXfer2.rxData = RT_NULL;
spiXfer2.dataSize = wlen-1;
spiXfer2.configFlags = kLPSPI_MasterPcs0 | kLPSPI_MasterPcsContinuous | kLPSPI_MasterByteSwap;
status = LPSPI_MasterTransferBlocking(pBase, &spiXfer2);
}else{
spiXfer1.txData = wbuf;
spiXfer1.rxData = RT_NULL;
spiXfer1.dataSize = wlen;
spiXfer1.configFlags = kLPSPI_MasterPcs0 | kLPSPI_MasterPcsContinuous | kLPSPI_MasterByteSwap;
status = LPSPI_MasterTransferBlocking(pBase, &spiXfer1);
rt_hw_us_delay(DELAY_COUNT);
spiXfer2.txData = RT_NULL;
spiXfer2.rxData = rbuf;
spiXfer2.dataSize = rlen;
spiXfer2.configFlags = kLPSPI_MasterPcs0 | kLPSPI_MasterPcsContinuous | kLPSPI_MasterByteSwap
status = LPSPI_MasterTransferBlocking(pBase, &spiXfer2);
}
先上逻辑分析仪
用逻辑分析仪试过了,我这是接的安全芯片,他是有的命令可以正常通讯,有的不行,大佬帮忙分析一下有可能是什么原因导致的。


把你的逻辑分析仪抓的结果,发给芯片厂家看看。
这是芯片问题吗,我在stm32的板子上都能正常通讯,在rt1052上就出现这种情况。