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.

[参考译文] MSPM0G1507:UART Rx ISR、调试与独立版

Guru**** 2872500 points

Other Parts Discussed in Thread: MSPM0G1507, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1637480/mspm0g1507-uart-rx-isr-debug-vs-standalone

部件号: MSPM0G1507
主题: SysConfig 中讨论的其他器件

我花了一段时间来调试此问题:

我在 MSPM0G1507 上使用 2 个 UART。  一个是仅 Rx、在我使用 ISR 收集字节后、我将它们转发出去另一个 UART。

我发现当调试器已连接并控制该过程时、我的过程工作正常。  当我独立引导系统时、我可以告诉 M0 已引导、因为我可以看到另一个 UART 的输出、但它从未中继过第一个 UART 的任何内容。

调试后、我发现问题是从未在独立模式下调用 ISR。  在调试模式下、正确使用 ISR。

与 grok 讨论后、我发现添加了函数调用:

  DL_UART_Main_receiveData (UART0_INST);  

这似乎支持调用 ISR、在调用之后、一切都能在独立模式下正常工作。

您能否说明为什么必须这样做?以及是否有更好的方法来确保在调试模式和独立模式下 UART 功能的一致性?

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

    尊敬的 Barry:
    提到“RX Only“时、您是指在 SysConfig 中将其设置为“RX Only“、还是仅将其用于 RX 接收?  

    此致、

    Diego Abad

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

    我在 SysConfig 中将其设置为“仅 RX“。  这样我就不必为 TX 分配引脚。  对于此设计、I 是引脚受限的。

    您认为这是根本问题吗?

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

    尊敬的 Barry:

    可能是。 我们建议为 TX 和 RX 都设置它(似乎是内部错误。) 您能尝试一下、看看它是否起作用吗?  

    此致、

    Diego Abad

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

    我必须释放一个引脚来尝试它。

    您认为初始化读取呼叫解决方案可能不可靠吗?  

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

    尊敬的 Barry:
    如果它确实修复了它并且它不影响任何其他项目,那么它现在应该已经足够好了。

    此致、

    Diego Abad

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

    这听起来好像我不久前研究过的东西:如果您在不读取 RXDATA 的情况下清除 RX 中断 (NVIC 或 RIS)、该字节会卡住在那里、您永远不会看到另一个 RX 中断。 我得出了以下结论:

    1) 始终读取 RXDATA 以响应 RX 中断  

    2) 还捕获溢出中断、并通过读取 RXDATA(可能)将其丢弃来进行响应。 这是良性的、如果 (1) 出现任何问题、您将能够恢复正常。

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

    谢谢你。  我相信这是有道理的。  我始终在启用中断之前清除中断、并且可能捕获了一个上电字节。  调试器可能在某个时刻读取该字节、因此在调试时工作正常。