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.

[参考译文] MSP430FR5994:双向 SPI 示例

Guru**** 2616675 points

Other Parts Discussed in Thread: MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/669754/msp430fr5994-two-way-spi-example

器件型号:MSP430FR5994
主题中讨论的其他器件:MSP430WARE

您好!

我尝试通过 MSP430FR5994与支持 SPI 的外部器件进行通信。 我已经成功测试了 MSP430ware driverlib 函数以传输一个字节、我可以在我的示波器上看到我按照我的预期获得了 cs、数据和时钟。 但是、我尝试与之通信的器件使用三字节协议、第一个字节是寄存器地址、接下来的两个字节是读取或写入数据。 现在我的问题是、我不能在第一个字节后读取任何内容。 基本上、按函数看起来是这样的(尚未实现正确的三字节协议、但是一个测试):

unsigned char res _read (unsigned char * port_ss、unsigned char pin_ss、unsigned char addr){
*端口_ss &&引脚_ss;//将 CS 设置为低电平
EUSCI_B_SPI_transmitData (EUSCI_B1_base、addr);
while (!EUSCI_B_SPI_getInterruptStatus (EUSCI_B1_BASE、
EUSCI_B_SPI_Transmit 中断);
EUSCI_B_SPI_transmitData (EUSCI_B1_base、addr);
uint8_t 字节1 = EUSCI_B_SPI_receiveData (EUSCI_B1_base);
*端口_ss |= PIN_ss;//将 CS 设置为高电平
unsigned char res =字节1
返回 res;
} 

由于我删除了任何杂波和特定于器件的内容、并且可能错过了某些内容、因此上述代码中可能存在一些微不足道的错误、但在我的示波器上、我得到了以下内容:

因此,我有两个问题

两个已发送字节之间的时间间隔较大-这是 由于来自 EUSCI_B_SPI_getInterruptStatus 的中断造成的、但为什么这么长、还有其他方法我应该发送两个连续字节以使它们直接传输?

2. 在 EUSCI_B_SPI_receiveData 期间没有任何结果。 无时钟无。 但有一个延迟、我可以看到我是否查看 ss 并使用 Rx 中断等待。

如果使用 driverlib 对多个字节进行 TX 和 RX 的工作示例非常值得赞赏!

很棒,适合任何人来!

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

    我很快会看到您的 CS 未被正确清除或设置。

    在第2行中、您有:
    *端口_ss &&引脚_ss;//将 CS 设置为低电平

    在第8行中、您有:
    *端口_ss |= PIN_ss;//将 CS 设置为高电平

    如果 PIN_ss 被定义为1、那么您将需要将第2行更改为:
    *端口_ss &&~引脚_ss;//将 CS 设置为低电平

    如果 PIN_ss 被定义为0、那么您将需要将第8行更改为:
    *端口_ss |=~引脚_ss;//将 CS 设置为高电平

    请告诉我这种情况的原因是否不清楚。 另外、如果您在实施后仍然遇到问题、请告诉我。

    谢谢、

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

    Mitch、您好、感谢您的回答。 这确实是我删除某些特定代码时出现的问题。 遗憾的是、CS 并不支持这一问题。

    最棒的

    Robert

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

    感谢您的澄清。 driverlib 软件随附示例。 您是否已经了解过这些内容? 从以下链接下载 driverlib 软件后:

    software-dl.ti.com/.../index_FDS.html

    您可以通过转到 Examples/导航到示例 / / 。 您将找到几个 SPI 示例。

    请告诉我这是否有帮助!

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

    感谢 Mitch 的支持。 实际上、令人尴尬、但软件没有问题、但跳线电缆有故障。 当您开始使用新产品时、您完全不知道它、因此很难知道从哪里开始。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们都去过那里! 发现问题的好地方!

    Mitch