微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541低功耗模式下的 PWRMGR_ALWAYS_ON 相关问题

CC2541低功耗模式下的 PWRMGR_ALWAYS_ON 相关问题

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

问题背景:项目所用MCU为CC2541,项目用到了低功耗模式( POWER_SAVING )

问题描述:项目有一个功能是使用蜂鸣器报警,利用PWM驱动。当我把PWM配置后,执行osal_pwrmgr_device( PWRMGR_ALWAYS_ON );但是蜂鸣器只响了一下,调试发现未知原因把pwrmgr_attribute.pwrmgr_device 重新改为了PWRMGR_BATTERY,而且不是用osal_pwrmgr_device()这个函数改的。

我换成官方的SimpleBLEPeripheral例程,做以下修改

if ( events & SBP_START_DEVICE_EVT )
{
// Start the Device
VOID GAPRole_StartDevice( &simpleBLEPeripheral_PeripheralCBs );

// Start Bond Manager
VOID GAPBondMgr_Register( &simpleBLEPeripheral_BondMgrCBs );

// Set timer for first periodic event
//osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD );
osal_pwrmgr_device( PWRMGR_ALWAYS_ON );

return ( events ^ SBP_START_DEVICE_EVT );
}

测试后也是会无缘无故把pwrmgr_attribute.pwrmgr_device 重新改为了PWRMGR_BATTERY。从而进入低功耗。

希望有人能解答。有点儿着急。

(void)osal_pwrmgr_task_state(Hal_TaskID, PWRMGR_HOLD);

利用上面的代码避免低功耗,Hal_TaskID可以改成其他的ID。

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

网站地图

Top