if(events & SBP_PERIODIC_EVT ) //系统定时查询 {
// Restart timer
if ( SBP_PERIODIC_EVT_PERIOD )
{
osal_start_timerEx( simpleBLETaskId, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD );
}
// Perform periodic application task
simpleBLE_performPeriodicTask();
CheckKeyP01State_deepsleep(); //判断P0.1是否为悬空或者高电平,否则就深度休眠
return (events ^ SBP_PERIODIC_EVT);
}
我在系统定时事件里面添加了一个P0.1电平检测,如果不等于0,就直接休眠,关闭广播和系统定时事件SBP_PERIODIC_EVT,进入低功耗,CC2541在广播状态时,是可以实现的休眠的;但是在连接状态或者通信状态时,将P0.1拉高是进入不了休眠模式,只有APP与模块断开连接后,才可以进入睡眠模式,请问这是什么原因?
Susan Yang:
要想进入PM3模式,就必须清空所有的定时事件,当不存在任何的定时事件时,即osal_timeoout和llTimeout都为0,这样就会进入PM3模式。
您现在是想进入PM3?当预编译了POWER_SAVING且系统检测到没有定时等任务时会自动进入PM3,无需人工干预