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.

[参考译文] LAUNCHXL-F28379D:有关 DRIVERLIB 示例的解释- SPI_ex2_loopback_fifo_interrupts

Guru**** 2538955 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1085235/launchxl-f28379d-explanation-about-example-driverlib---spi_ex2_loopback_fifo_interrupts

部件号:LAUNHHXL-F28379D

您好,

我是微控制器的初学者。 我希望将两个控制器连接到一个快速通信链路,SPI 似乎是我最好的方法。

我在资源管理器中查看这些示例。 DRIVERLIB - SPI_ex2_loopback_fifo_interrupts 让我头痛,因为我不理解为什么这个示例有效(它确实有效,我在 Launchxl 上测试了它:-))。

要开始传输,应运行__interrupt void spixFIFO ISR(void)函数,因为它包含 SPI_writeDataNonBlocking 函数。

但是,什么会在第一次迭代时调用中断?

我能得到更多关于该程序工作方式的解释吗?

谢谢,

此致,

François

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  François,

    当 TX 缓冲区为空或 TX FIFO 包含的字数少于配置的字数时,触发 TX 中断。

    因此,在启用 SPI 模块后,会立即触发 TX 中断。

    希望这能解释。

    此致,

    维纳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的韦纳。 感谢您的回答

    我想我明白了。 让我重新表述:

    第一次启动时,TX 缓冲区为空。 因此触发了 TX 中断 ,函数(spTxFIFO ISR)被调用:使用 sData[0]和 sData[1]写入 TX 缓冲区。

    这两个词立即通过 SPI 发送,清空缓冲区。 当中断被清除时,中断将立即上升,因为缓冲区为空,等等...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,这是正确的。