【睡眠】DA14580睡眠问题

您好,我使用DA14580芯片做睡眠功能时,按照文档上的指导,app_default_sleep_mode=ARCH_EXT_SLEEP_ON;
程序死在check_sys_startup_period中, while ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP) {};中,请问这个一般是哪个原因呢?

  • 你好,

    请问使用的是哪一个工程?参照哪一份文档?

  • 这个问题已找到原因,请问唤醒蓝牙睡眠的GPIO是可以任意的GPIO 口吗?
    GPIO中断唤醒的配置,一定要使用如下的配置吗?
    app_easy_wakeup_set(app_wakeup_cb);
    wkupct_register_callback(app_button_press_cb);
    #if USE_PUSH_BUTTON
    if (GPIO_GetPinStatus(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN))
    {
    wkupct_enable_irq(WKUPCT_PIN_SELECT(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN), // select pin (GPIO_BUTTON_PORT, GPIO_BUTTON_PIN)
    WKUPCT_PIN_POLARITY(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN, WKUPCT_PIN_POLARITY_LOW), // polarity low
    1, // 1 event
    0); // debouncing time = 0
    }
    #endif // USE_PUSH_BUTTON

    还是可以进行如下配置:
    GPIO_RegisterCallback((IRQn_Type)(GPIO1_IRQn+PTT_BUTTON_IRQ), Button_PttHandler);
    GPIO_EnableIRQ( GPIO_PTT_BUTTON_PORT, GPIO_PTT_BUTTON_PIN, (IRQn_Type)(GPIO1_IRQn+PTT_BUTTON_IRQ), /*low_input*/ true, /*release_wait*/ true, /*debounce_ms*/ 0);
    这样配置的话,我进入睡眠后,GPIO中断进不来。请问这是什么原因呢?

  • 你好,

    IO 口中断,无法唤醒休眠中的芯片(可在正常工作模式下产生中断),必须通过 wakeup 定时器来唤醒,从而达到间接的 IO 唤醒系统的目的。所以想做 IO 唤醒系统的话,可通过 wkupct_enable_irq 配置为芯片的任一 IO 口。

    另外,你原问题的原因是什么,可以分享给大家

  • 你好,我的使用的ble_app_sleepmode的样例,但是直接且仅仅修改了LED和BUTTON的管脚位置,起初程序可以运行,但是不无法唤醒系统。不知道是哪里的原因?

  • cxzs1234,你好。不同的提交者请分别提交问题,你可以在新帖子中详细描述问题的整个过程,起初可以工作,之后修改了什么内容出了什么问题。