工具与软件:
我们使用 TMS320F28377D-SPI 处理器通过 EP 与 ARINC 芯片通信。 芯片通过4线连接到 SPIB、SPI 配置为8位。
我们能够建立通信、而从器件 ARINC 芯片能够发送对操作码的响应。 我们可以在 SPIRXBUF 中看到器件的响应为0x0030。 但是、当我们读取变量的值时、其读数为"0"。 此外、当我们单步执行 SPI 接收代码时、数据将被分配给变量。 如果没有断点、则不会将数据分配给变量。 需要您的帮助来解决问题。
问题出在仅接收缓冲区、请参阅以下有关如何存储来自接收缓冲区的数据的代码
SPI 8位传输代码:
空洞
SPI_transmit8Bits (uint32_t base、uint8_t DATA)
{
uint8_t txBuffer;
txBuffer =数据;
while ((HWREGH (base + SPI_O_STS)和 SPI_STS_BUFFULL_FLAG)!= 0u)
{
}
HWREGH (BASE + SPI_O_TXBUF)= txBuffer;
}
SPI 8位接收代码:
uint16_t SPI_receive8Bits (uint32_t base)
{
uint16_t rxData = 0u;
断言(SPI_isBaseValid (base));
while ((HWREGH (BASE + SPI_O_STS)& SPI_STS_INT_FLAG)=0U)
{
}
rxData =(HWREGH (BASE + SPI_O_RXBUF));
return (rxData);
}

