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.

[参考译文] CC3220SF:在 LPDS 模式下 GPIO 唤醒

Guru**** 2589280 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/931549/cc3220sf-gpio-wakeup-in-lpds-mode

器件型号:CC3220SF
Thread 中讨论的其他器件:SysConfig

您好!

我将 SysConfig 配置为以下内容、并将 MCU 发送到睡眠模式、同时阻止所有其他任务。 MCU 将按预期进入 LPDS 模式,并在 SLEEP ()到期后唤醒。 我想知道如何使用 GPIO 中断唤醒 MCU。 我在 GPIO13上生成一个中断、但它不会唤醒。 为了使其从 GPIO 中断中唤醒、我需要做什么?

下面是我的 SysConfig 配置。

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

    Kristin、您好!

    您的应用在唤醒时做了什么? 如果您的应用没有在唤醒时执行的任务、MCU 将返回休眠状态。 尝试通过添加 LPDS 函数并切换 GPIO 来测试这一点。 请确保在尚未调用 GPIO_init 的情况下调用 GPIO_init。

    Jesu

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

    Jesu、

    我在调用 sleep()之前关闭 LED,在 sleep()之后打开同一 LED。 我在测试我的应用程序时选中了"Keep Debug Active During LPDS (在 LPDS 期间保持调试活动)"、并在我打开 LED 的 SLEEP ()之后添加了一个断点。 当我在 GPIO13上生成中断时、断点不会立即命中、但会在睡眠定时器过期后命中。

    下面是相同的代码片段。

    GPIO_WRITE (RED_LED、GPIO_LOW);
    睡眠(15);
    GPIO_WRITE (RED_LED、GPIO_HIGH);

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

    我相信您必须注册 LPDS GPIO 唤醒功能。 我刚才测试了这个、它工作正常。 请记住、唤醒将单独运行。 例如、如果您的线程处于睡眠状态10秒、并且在其间的某个位置触发 GPIO 唤醒、则它将执行该唤醒功能、然后返回睡眠状态、并在10秒内仍唤醒。

    耶稣

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

    您好、Jesu、

    如果 MCU 由于 GPIO 而唤醒并在计时器过期之前返回 LPDS、我不希望计时器再次唤醒 MCU。 我是否可以将具有时间的信标用作参数而不是 SLEE(),以便在信标从 GPIO 唤醒并且不必再次唤醒时可以发布信标?

    信号量的一个示例是

    //SemaphoreP_PEND (LPDSHandlerSem、10*32768);

    可以这样做吗?

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

    Kristin、您好!

    是的、我建议采用这种方法。

    Jesu