高支持、
我将 RM42 SPI1配置为 SPI 从设备、并使用 AM65x MCU 作为 SPI 主设备。 这两个电路板连接至 SOMI、SIMO、CLK、CS 和 GND。
AM65x MCU 将在启动时从 RM42板循环读取 SPI。
如果 AM65X 板比 RM42板更早启动、则一切似乎都正常。 但是、如果 RM42x 板较早启动、它将卡在函数 spiTransmitAndReceiveData 中。
下面是代码 RM42 SPI 从器件:
// SPI
spiInit();
for (;;) {
// Transmit SPI
spiTransmitAndReceiveData(spiREG1, &dataconfig1_t, 16, spiTxData, spiRxData);
// Toggle LED when success
gioToggleBit(gioPORTA, 2);
}
卡住时、它会停留在 spi.c 文件中函数 spiTransmitAndReceiveData 中的无限循环中:
/*SAFETYMCUSW 28 D MR:NA <APPROVED> "Hardware status bit read check" */
while((spi->FLG & 0x00000100U) != 0x00000100U)
{
} /* Wait */
SPI->FLG 的值为0x201,有时为0x211。
发生这种情况时、如果我对 RM42板进行下电上电、这样在 AM65x 板之后引导、它将正常工作。
那么问题可能出在哪呢? 如何清除误差并跳出无限循环?

