TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640由standby模式唤醒以后,Uart工作不正常。

各位好,

我的需求是这样的:当没有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下无任务系统是会自动进入低功耗模式的

赞(0)
未经允许不得转载:TI中文支持网 » CC2640由standby模式唤醒以后,Uart工作不正常。
分享到: 更多 (0)