各位好,
我的需求是这样的:当没有BLE连接的时候,进入低功耗模式,当有BLE连接的时候,由低功耗模式退出,正常工作。
我申请了一个定时器,其服务程序如下:
static void WakeUp_clockHandler(UArg arg)
{
if((gapProfileState == GAPROLE_CONNECTED) || (gapProfileState == GAPROLE_CONNECTED_ADV))
{
Power_setPM();
}
else
{
Power_relPM();
}
Util_startClock(&WakeUpClock);
}
static bool PMFlag=true;
void Power_relPM(void)
{
if ( ! PMFlag )
{
return;
}
// release constraints for Standby and idle mode
Power_releaseConstraint(Power_SB_DISALLOW);
Power_releaseConstraint(Power_IDLE_PD_DISALLOW);
PMFlag = FALSE;
}
void Power_setPM(void)
{
if( PMFlag )
{
return;
}
// set constraints for Standby and idle mode
Power_setConstraint(Power_SB_DISALLOW);
Power_setConstraint(Power_IDLE_PD_DISALLOW);
PMFlag = TRUE;
}
现象:
一上电的时候电流在2.5mA,此次串口可接可发。
开启低功耗检测后,电流在0.8mA
当使用手机进行通信时,电流在2.1mA, 此时串口只能接受,不能发送。
问题:
因为唤醒以后电流没有回到原来的值,我怀疑是不是有部分外设没有被唤醒,影响到串口的发送功能?