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.

[参考译文] CCS/TM4C1294NCPDT:如何读取 WAKE 引脚的状态

Guru**** 2561330 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/843378/ccs-tm4c1294ncpdt-how-to-read-the-status-of-wake-pin

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

HII

我的要求是、当 PIN WAKE 信号为低电平时、处理器不应进入休眠状态。

我已经尝试使用下面的示例代码以 常规间隔读取中断状态

IF (ui32Status &(HIBERNATE_INT_PIN_WAKE))

ui32Status = HibernateIntStatus (0);

while (((ui32Status &(HIBERNATE_INT_PIN_WAKE))))

HibernateIntClear (HIBERNATE_INT_PIN_WAKE);

SysCtlDelay (40000000);
ui32Status = HibernateIntStatus (0);

HibernateRequest();


我将 WAKE 引脚设置为低电平,但它仍然从 while 循环中发出

请建议一些解决方案来读取 WAKE 引脚状态

谢谢、致以诚挚的谢意

Anamika Kumari

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

    Anamika、您好!

    仅当/WAKE 引脚最初被拉至低电平时、/WAKE 中断才会被置为有效。 /WAKE 是一个外部输入、当处理器有效时、它会使处理器退出休眠模式。 它不做任何额外的事情。

    您的用例有一点独特、因此我没有尝试这样做、但可以执行以下操作:

    1) 1)使用 K4-K7中的一个作为休眠的唤醒信号、首先将其配置为 GPIO 输入、然后使用   GPIO_PIN_TYPE_WAKE_HIGH 或 GPIO_PIN_TYPE_WAKE_LOW 的 GPIOPadConfigSet 配置 GPIOWAKEPEN 和 GPIOWAKELVL 寄存器。 这可以通过使用 GPIOPinTypeWakeHigh 或 GPIOPinTypeWakeLow 一步轻松完成、后者会处理所有这些配置。

    2) 2)查看是否使用此配置、可以使用 GPIOPinWakeStatus 读取所选引脚的引脚状态。 我认为这不起作用、因为它看起来像/WAKE 引脚那样措辞、但值得进行初始尝试。 如果不起作用 、则尝试使用标准 GPIOPinRead、我认为该标准在该配置下应该能够正常工作、并允许您将引脚状态读取为低电平或高电平。 这将让您轮询您的/WAKE 被置为低电平。

    如果即使 GPIOPinRead 也不起作用、您需要将其中一个或多个 GPIO 连接到另一个引脚、并使用 GPIO 外设监视该引脚。