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.

[参考译文] MSP430G2553:I2C 和 UART 共享中断向量

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/755323/msp430g2553-i2c-and-uart-shared-interrupt-vector

器件型号:MSP430G2553

大家好、

我将 MSP430G2553与三轴加速计一起使用。

微控制器通过 I2C (设置例程、轴数据、激活/停用中断等)与加速计通信、同时我尝试通过 UART 将 XYZ 数据发送到 PC、以便通过终端应用程序进行分析。 换言之、uC 和加速计之间始终存在双向 I2C 通信(RX 和 TX)、而通过 UART 从 uC 到 PC 的恒定单向通信。

遗憾的是(对我而言) I2C 和 UART 共用同一个中断矢量(#pragma vector=USCIAB0TX_vector)。 我很难使用数据表/外设指南中提供的信息使其正常工作。 我假设有一个标志、指示 I2C/UART 是否正在使用、但我找不到它。

如果可能、我希望获得一些帮助、

非常感谢您的参与。

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

    尽管 USCIA 和 USCIB 外设在该器件上共享相同的中断 pragma、但 TX 和 RX 标志是 SFR (寄存器)中不同的位。 您需要在中断矢量内执行标志检查以查看哪个外设正在执行中断、或者为每个位执行切换/大小写以查看是否正在提供中断。

    有关如何执行标志检查的示例、请参阅以下示例代码链接中的 I2C 或 UART 标准示例。
    dev.ti.com/.../