This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,团队
我想使用 TM4C1294XL Launchpad 来完成 SPI 通信。
但是现在 、我无法将数据写入 SSI_DR_DATA。SSI_DR_DATA 寄存器始终为0。
我不知道原因。我能错过什么吗?以下是我的代码。 可以帮帮我吗? 谢谢你。
您好!
在 while (1)之前、您能否先清除 SSI 端口中的任何剩余数据? 添加以下示例行。
//
//从 SSI 端口读取任何残留数据。 这将确保接收
// FIFO 为空,因此我们不会读取任何不需要的垃圾。 这在这里完成
//因为 SPI SSI 模式为全双工模式,允许您发送和
//同时接收。 SSIDataGetNonBlocking 函数返回
//返回数据时为"true",未返回数据时为"false"。
//“非阻塞”函数检查接收中是否有数据
// FIFO、如果没有、则不会"挂起"。
//
while (SSIDataGetNonBlocking (SSI2_base、&pui32DataRx[0]))
{
}
请 将 SSIDataPutNonBlocking 替换为 SSIDataPut。 此函数将提供的数据放入发送 FIFO 中。 如果发送 FIFO 中没有可用空间、该函数将等待直到有可用空间后再返回。 执行同样的操作以将 SSIDataGetNonBlocking 替换为 SSIDataGet。 如果 FIFO 中没有数据、则 SSIDataGetNonBlocking 将返回零。 如果没有可用数据、SSIDataGet 将等待数据接收后再返回。
我还建议您查看 C:\ti\TivaWare_C_Series-2.2.0.295\examples\peripherals\SSI 和 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\ssi_master_slave_xfer 中的示例。