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.

[参考译文] MSP430F5438A:代码在调试模式下不工作。

Guru**** 2394295 points
Other Parts Discussed in Thread: MSP430F5438A, TCA9548A, AMC6821

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1015545/msp430f5438a-code-not-working-in-debugging-mode

器件型号:MSP430F5438A
主题中讨论的其他器件: TCA9548AAMC6821

您好!

我使用的 I2C3连接在 MSP430F5438A 的 P10.1和 P10.2 (分别为引脚77和78)上。

该 I2C 进一步连接到开关(TCA9548A)、并从开关 CH0-CH4连接五个风扇(一个通道上有一个风扇)。  

风扇部件号:AMC6821

因此、当我从调试器逐步调试代码时、这五个风扇正常工作、但当我指定时

“运行”按钮(一次运行代码的绿色按钮)我的风扇未启动。

我还在进行 I2C 事务处理之前正确配置开关。

采取这些行动的原因可能是什么?

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

    大家好、感谢您的发帖!

    我认为这应该是计时问题、因为系统可以分步工作、但在继续运行时无法正常工作。

    请考虑以下项目来调试此问题

    • 使用断点对代码进行部分调试
    • 在两个 I2C 数据之间添加延迟
    • 将 I2C 速度更慢(<100kHz)
    • 使用 I2C 分析仪或示波器监控波形。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    李晓东、您好、感谢您的重播!

    我逐步调试了我的代码、但我没有找到任何相关问题。  

    当我在两个 I2C 数据之间设置延迟时、它会影响我的其他 I2C 读取/写入操作、这会使代码的运行速度比平常慢。

    对于其他操作、我将获得适当的波形、但在本例中、我没有获得任何波形。

    我还尝试读取器件 ID 寄存器、其默认值为0x21、我将在逐步调试时正确获得该寄存器、但不会继续

    运行。

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

    您好!

    实际上、问题是当我运行继续模式时、当我想要传输数据时、我的代码会在下面的行中挂起。

    while (!(UCB3IFG & UCTXIFG));//在此处挂起
    UCB3TXBUF = u8TxData;

    因此、我无法向从器件发送数据。

    这些解决方案可以是什么?

    谢谢。

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

    大家好、我认为 F5438A 用作 I2C 主设备、

    我想您可以通过断点来检查 UCB3IFG 的 UCTXIFG 的状态。

    同时、您可以考虑使用代码示例中的 msp430x54xA_USCI_i2c_standard_master.c 代码测试此函数: MSP430F543xA、MSP430F541xA 代码示例(修订版 K) 、因为这是寄存器级代码。 找出问题可能会有所帮助。 谢谢!