微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640由standby模式唤醒以后,Uart工作不正常。

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

时间:10-02 整理:3721RD 点击:

各位好,

我的需求是这样的:当没有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, 此时串口只能接受,不能发送。

问题:

因为唤醒以后电流没有回到原来的值,我怀疑是不是有部分外设没有被唤醒,影响到串口的发送功能?

唤醒后请延时一段时间让晶振稳定,并重新初始化串口试试

Hi Vishi,

我延时500ms,然后执行SDITask_inititializeTask函数,就导致程序死掉了。

我发了三个帖子,请您看见尽快回复,我都快崩溃了,呜呜

·····

程序死掉了还是卡住了?怎么判断是程序死了?

Hi,ViKi Shi

我正常工作时,电流在2.5mA, 我一连接,都电流都3.4mA.

麻烦请教个问题:

          将POWER_SAVING宏定义打开,不用改任何代码,程序就直接进入standby模式了吗?

           我操作的现象是,将POWER_SAVING宏定义打开之后,程序就没有反应了,但是蓝牙还在广播,这是正常现象吗?

你用的是哪个例程?TI RTOS下无任务系统是会自动进入低功耗模式的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top