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.

[参考译文] CC2652R7:睡眠模式和唤醒问题

Guru**** 2894990 points

Other Parts Discussed in Thread: CC2652R7

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1644058/cc2652r7-sleep-mode-and-wake-up-issues

器件型号: CC2652R7

 

睡眠模式和唤醒问题
我目前正在使用 CC2652R7 开发一款产品。 我正在使用 SDK 版本 simplelink_cc13xx_cc26xx_sdk_8_32_00_07。

下面是我的 main() 函数:

 

int main()

 /*注册应用程序回调到在堆栈中提出的陷阱断言*/
 RegisterAssertBack(AssertHandler);

   
 BOARD_INITGENERAL ();
 PowerCC26X2_ResetReason resetReason = PowerCC26X2_getResetReason ();
 if (resetReason == PowerCC26X2_RESET_SHUTDOWN_IO){
    //按按钮唤醒系统;程序将正常运行。
 }其他{
    //其他情况(冷启动或手动复位)→进入待机模式并等待按下按钮唤醒
    int i;
    对于 (I=0;I<31;I++)
      GPIO_setConfig (i、GPIO_CFG_INPUT | GPIO_CFG_IN_NOPULL);

    GPIO_setConfig (6、GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_FALLING);
    GPIO_clearInt (6);
    GPIO_enableInt (6);


    //关闭
    POWER_SHUTDOWN (0、0);  
 }

 //启用 ICache 预取
 VIMSConfigure (VIMS_BASE、TRUE、TRUE);
 //启用缓存
 VIMSModeSet (VIMS_BASE、VIMS_MODE_ENABLED);

#if ! defined( power_saving )
 /*设置待机、断电和空闲模式的约束*/
 // PowerCC26XX_SB_disallow 可能是冗余的
 Power_setConstraint (PowerCC26XX_SB_disallow);
 Power_setConstraint (PowerCC26XX_IDLE_PD_disallow);
#endif // power_saving

 /*更新堆栈的用户配置*/
 user0Cfg.appServiceInfo->timerTickPeriod = Clock_tickPeriod;
 user0Cfg.appServiceInfo->timerMaxMillisecond = iCall_getMaxMSecs();

 /*初始化 iCall 模块*/
 iCall_init();

 /*启动外部映像的任务 — 优先级 5 */
 iCall_createRemoteTasks ();

#ifdef PTM_MODE
 /*启动 NPI 任务的任务*/
 NPITask_createTask (ICALL_SERVICE_CLASS_BLE);
#endif // PTM_MODE
 MyApp_createTask();
 SimplePeripheral_createTask();
  

 /*启用中断并启动 SYS/BIOS */
 bios_start();

 返回 0;
}

我最初的目的是让系统在上电或复位后进入关断模式、然后等待按下按钮将其唤醒。 我将 1000000 上拉电阻器和按钮连接到 IO6;按下按钮将 IO6 接地。
现在的问题是、使用此配置时、IO6 无法唤醒程序。 我的代码是否有问题、正确的实现方法是什么?

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

    您好、Nick、

    请参阅 gpioshutdown 示例、特别是我没有看到  GPIO_setConfig 中的 IO6 设置为 GPIO_CFG_SHUTDOWN_WAKE_LOW

    此致、
    Ryan

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

    您是对的、以下设置正常:

    GPIO_setConfig (6、GPIO_CFG_IN_PU | GPIO_CFG_SHUTDOWN_WAKE_LOW);

    非常感谢。