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

CC2540在进入PM3后,怎么正确唤醒

各位大大们好:

    请问,在进入PM3后,已经可以通过按键重新唤醒MCU,但是,该怎么才能使射频正常工作啊~`(*∩_∩*)′

HAL_ISR_FUNCTION( halPort2Isr, P2INT_VECTOR )
{HAL_ENTER_ISR();uint8 value;if( P2IFG & 0x01 ){P2IFG &= ~BV(0);value = TRUE;GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof(uint8), &value); //开启广播}else{P2IFG = 0;}CLEAR_SLEEP_MODE();HAL_EXIT_ISR();
}

这是我P2.0中断的代码,在中断中,我恢复了 CC2540 的广播使能,发现能成功进入中断,但是运行完开启广播那一句之后,广播并没有开启。所以想问一下各位大大,我该怎么做才行,谢谢~`(*∩_∩*)′

Yan:

Bob,

最好不要再这里直接调用应用层的这个函数。

建议你可以参考keyfob 工程里面的按键IO 中断触发唤醒PM3 直接进入广播的代码,有现成的。

xu zhang4:

回复 Yan:

Yan,

if( gapProfileState != GAPROLE_CONNECTED ) { uint8 current_adv_enabled_status; uint8 new_adv_enabled_status;

//Find the current GAP advertisement status GAPRole_GetParameter( GAPROLE_ADVERT_ENABLED, &current_adv_enabled_status );

if( current_adv_enabled_status == FALSE ) { new_adv_enabled_status = TRUE; } else { new_adv_enabled_status = FALSE; }

//change the GAP advertisement status to opposite of current status GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &new_adv_enabled_status ); }

这段代码可以唤醒PM2状态么?还有怎么能让蓝牙进入PM2。是用这个么osal_pwrmgr_device( PWRMGR_BATTERY );?还有我打开PowerSave之后为什么之前能给串口发送的数据现在貌似全都发不出去了?

赞(0)
未经允许不得转载:TI中文支持网 » CC2540在进入PM3后,怎么正确唤醒
分享到: 更多 (0)