各位好,
我的需求是这样的:当没有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, 此时串口只能接受,不能发送。
问题:
因为唤醒以后电流没有回到原来的值,我怀疑是不是有部分外设没有被唤醒,影响到串口的发送功能?
Viki Shi:
唤醒后请延时一段时间让晶振稳定,并重新初始化串口试试
Frank Mei:
回复 Viki Shi:
Hi Vishi,
我延时500ms,然后执行SDITask_inititializeTask函数,就导致程序死掉了。
我发了三个帖子,请您看见尽快回复,我都快崩溃了,呜呜
·····
Viki Shi:
回复 Frank Mei:
程序死掉了还是卡住了?怎么判断是程序死了?
Frank Mei:
回复 Viki Shi:
Hi,ViKi Shi
我正常工作时,电流在2.5mA, 我一连接,都电流都3.4mA.
Alex CBJ:
回复 Viki Shi:
麻烦请教个问题:
将POWER_SAVING宏定义打开,不用改任何代码,程序就直接进入standby模式了吗?
我操作的现象是,将POWER_SAVING宏定义打开之后,程序就没有反应了,但是蓝牙还在广播,这是正常现象吗?
Viki Shi:
回复 Alex CBJ:
你用的是哪个例程?TI RTOS下无任务系统是会自动进入低功耗模式的