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.

[参考译文] MSP430G2955:MSP430G2955

Guru**** 2524460 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/589232/msp430g2955-msp430g2955

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

大家好、

从我要与 COG LCD 通信的 SPI 接口开始、我有一个有关 SPI 配置的基本问题:

因此、在为 SPI 配置寄存器并查看 MSP430ware 中的示例后、我想了解在 while (!(IFG2 & UCA0TXIFG)之后或之前、何时写入 UCA0TXBUF 的原因; 对 UCA0TXIFG 位(始终为1)没有影响、并且即使我没有使用数据接收、也只将 UCA0RXIFG 位设置为1。

在数据表中,它指出当 UCA0TXIFG=1时,数据已从 UCA0TXBUF 移动到 Tx 移位寄存器,并且 UCA0TXBUF 为空(中断挂起), 但是、当我在 CCS 上检查寄存器时、我看到 UCA0TXIFG 一直被设置为1、UCA0TXBUF 永远不会变为空。 请大家澄清我对这件事的怀疑,我将表示感谢。

此致、

Tarik

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

    您好、Tarik、

    SPI 是一种全双工接口。 每次传输一个字节时、都会收到一个字节。 根据协议的不同、该字节可能没有意义、但在硬件级别、始终接收数据。 我认为、可以帮助您澄清所看到的内容的是参考手册(slau144)的第16.3.3节。

    一个发送中断标志 UCxTXIFG 被置位、表示数据已经从 UCxTXBUF 移动到 TX 移位寄存器并且 UCxTXBUF 已为新数据做好准备。 它不指示 RX/TX 完成。

    为了在主控模式下接收 USCI 中的数据、由于接收和发送操作是同时进行的、所以必须将数据写入 UCxTXBUF。

    因此、可以合理地期望 UCxTXIFG 始终为1、因为它只是从寄存器移动到外设中的移位寄存器、这种速度非常快、除非它正忙于发送并且必须等待。

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

    您好 Chris、

    非常感谢您的回答、另一方面、如果我想检查我是否正在发送数据(如果有大量数据)、我只需要检查 UCBUSY。

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

    是的、如果您要发送或接收一组数据、并且只想检查整个事务的完成时间、则可以使用来检查 UCBUSY 的值。

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