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.

[参考译文] TM4C1294NCPDT:SPI 无法传输数据

Guru**** 2348500 points
Other Parts Discussed in Thread: EK-TM4C1294XL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1194794/tm4c1294ncpdt-spi-can-not-transfer-data

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:EK-TM4C1294XL

您好,团队

  我想使用 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 中的示例。