工具与软件:
您好、我正在尝试在 按下按钮2时执行 SHUTDOWN、然后在按下按钮3时再次处于 wakup 状态、因为它将进入 SHUTDOWN 状态、 但在 CONFIG_GPIO_SW4_INPUT 时不会唤醒。该按钮或按钮3都是相同的、但它不会唤醒、请建议我如何唤醒
void * vTask1Function (void * arg0)
{
for (;;)
{
GPIO_WRITE (CONFIG_GPIO_GREEN、1);
if (connect_flag==0)
{
if (button_up=1)
{
BUTTON_UP = 0;
BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) stopAdvertisment);
while (connect_flag==0)
{
scan_device();
vTaskDelay (pdms_to_ticks (3000));
}
}
}
vTaskDelay (pdms_to_ticks (1000));
if (button_down=2)
{
BUTTON_DOWN = 0;
PowerLPF3_ResetReason resetReason = PowerLPF3_getResetReason ();
/*如果我们从关机状态中唤醒,请做一些额外的事情。 */
如果(resetReason=PowerLPF3_RESET_SHUTDOWN_IO)
{
/*应用程序代码在退出关断模式时必须始终禁用 IO 锁存器*/
PowerLPF3_releaseLatches ();
}
Button_Params 按钮参数;
Button_Params_(&buttonParams);
buttonParams.buttonCallback = buttonCallback;
buttonParams.buttonEventMask = button_ev_pressed;
button_open (CONFIG_GPIO_SW4_INPUT、&buttonParams);
semHandle = SemaphoreP_structBinary (&semStruct、0);
SemaphoreP_PEND (semHandle、SemaphoreP_WAIT_FOREVER);
GPIO_WRITE (CONFIG_GPIO_GREEN、0);
GPIO_setConfig (CONFIG_GPIO_SW4_INPUT、GPIO_CFG_IN_pu | GPIO_CFG_SHUTDOWN_WAKE_LOW);
POWER_SHUTDOWN (0、0);
// while (1){}
}
if (button_right=3)
{
if (connect_flag==0)
{
button_right = 0;
GPIO_WRITE (CONFIG_GPIO_GREEN、1);
GPIO_WRITE (CONFIG_GPIO_GREEN、0);
GPIO_WRITE (CONFIG_GPIO_RED、1);
BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) startAdvertisment);
vTaskDelay (pdms_to_ticks (5000));
GPIO_WRITE (CONFIG_GPIO_RED、0);
}
}
}
}