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.

[参考译文] MSPM0L1106:GPIO 中断问题

Guru**** 2518620 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1448052/mspm0l1106-question-on-gpio-interrupt

器件型号:MSPM0L1106

工具与软件:

大家好、团队成员:

我想问以下关于 GPIO 中断的问题:

1.根据数据表和技术参考资料、除关断模式外、GPIO 应在不同的省电模式下工作。

  在 sleep0、stop0和 standby0上测试 GPIO 中断后、中断可以唤醒 MCU。 但是、无法从其他模式1或2唤醒 MCU。

  是真的吗? 我希望 MCU 可以从 sleepX、stopX 和 standbyX 模式唤醒。 如果不是该位、则需要设置哪些设置才能使 GPIO 中断在所有模式下唤醒?

2.正如我测试的功能:

  - DL_SYSCTL_enableSleepOnExit ():  执行该函数后, MCU 将在执行 ISR 后再次进入睡眠模式。

  - DL_SYSCTL_disableSleepOnExit ():执行此函数后, MCU 将在服务 ISR 后返回主循环。 通常会调用该函数。

  如果我想一些中断在 ISR 被处理后直接返回休眠状态、有些中断则不需要。 您能告诉我如何实现吗?

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

    2) 2)您可以根据您是否希望 main 唤醒、从 ISR 中调用 SleepOnExit 函数。 它们相当便宜--它们只是在 SCR 中设置/清除一点。

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

    Bruce、您好!

    感谢您的答复和信息。

    大约1 ),我有更多的测试它,发现当中断被触发:
    -在 Sleep0、Stop0-2和 Standby0-1模式中,ISR 将被处理,主"while"循环将被执行。
    -在 Sleep1-2中,执行 ISR 时不执行"while"循环。
    在我的测试中,只有 DL_SYSCTL_disableSleepOnExit ()在前面执行。 如何解释这一现象?

    此外、我在启用零中断的情况下测试了 PWM 驱动程序、其行为与 GPIO 中断相同。

    还有另一种奇怪的行为、PWM 的时钟源为 BUSCLK、它在 Sleep1-2、STOP-2和待机模式下不应工作。 但它现在适用于所有模式。

    我想知道是否有办法避免系统进入不同的省电模式? 希望有人能在这方面帮助我。

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

    您好!

      是否正确? 我希望 MCU 可以从 sleepX、stopX 和 standbyX 模式唤醒。 如果不是、则需要设置哪些设置才能在所有模式下唤醒 GPIO 中断?[/QUOT]

    我已经完成了所有低功耗模式都可以从 GPIO 中断唤醒的测试。

      如果我想在提供 ISR 后立即恢复某些中断、而有些中断又不想恢复睡眠状态。 您能告诉我如何实现这一点吗?[/QUOT]

    您可以 使用  DL_SYSCTL_disableSleepOnExit ()。 并在 main 代码中使用___ WFI ();。 此代码将使 CPU 处于低功耗模式并等待中断触发。

    此致、

    Zoey

    [/quote]