休眠结束后协议栈处于低功耗的什么模式?PM2?
情景:启动了一个定时器去周期性的执行SimpleBLEPeripheral_ProcessEvent里的某一个事件。在这个时间里去调用串口打印函数。
启动了POWER_SAVING、而且能顺利进入休眠状态!
问题:1.串口打印失败是因为处于PM2模式么?我在串口打印函数地方打了一个断点,run到断点时halPwrMgtMode为0x02。
2.休眠之后执行任务事件时不是处于PM1模式?为什么?这样我的串口不能打印出数据!
1、低功耗模式下不可使用串口通信
2、休眠醒来执行任务,应该是activity模式,此时串口可以使用
低功耗不能使用串口,我定义的答应函数是在simpleBLEPeriphal 工程的SBP_PERIODIC_EVT事件里周期性执行,但是必须将P0_4拉低串口调试助手中才能收到数据
if ( events & SBP_PERIODIC_EVT ) //工程里的app事件
{
// Restart timer
if ( SBP_PERIODIC_EVT_PERIOD )
{
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD );
}
sbpSerialAppWrite(table1,1); //打印函数
// Perform periodic application task
// performPeriodicTask();
return (events ^ SBP_PERIODIC_EVT);
}
能不能给出详细解释!谢谢
串口收发需要晶振支持,低功耗模式下回关闭晶振,所以使用串口时不能选择power saving
那这样对功耗有没有影响 ?这个比PM2功耗多多少