ch579 rtc低功耗唤醒例程求助

ch579 低功耗模式下使用RTC唤醒的例程有人有吗?j_0017.gif

你好,请问你是使用蓝牙开启低功耗然后RTC唤醒嘛?如果使用蓝牙的话,使能HAI_SLEEP就开启了RTC触摸唤醒。如果不是,也可以参考CH579EVT里面sleep.c,自己移植即可。


@wangyy 你好,请问开启了HAL_SLEEP  为TRUE后,会有什么现象产生吗?我开启之后,我从串口的数据感觉不出有进入睡眠还有唤醒的过程,蓝牙从机一直都在进行的样子,没有进入睡眠模式。

还有

#define WAKE_UP_RTC_MAX_TIME65

这个65的单位是秒还是什么的次数吗?


睡眠是由TMOS系统管理的,有Event就运行,没有就睡眠。

WAKE_UP_RTC_MAX_TIME为睡眠唤醒所需时间,默认不要修改,单位为625us


好,谢谢Taoyukai解答,祝你们双节快乐!到时候有问题再提出j_0002.gif


请问官方技术人员,现在我想在Peripheral的官方例子上面实现用户自己控制低功耗-Shutdown模式(不是TMOS根据有无Event进行睡眠和RTC唤醒),蓝牙关闭,然后RTC 10s后唤醒,蓝牙开启,请问要怎么实现?弄了一周不成功。

下面是想实现特征值1收到信息后,睡眠,然后RTC 10s后唤醒,不过没有实现我想要的功能,蓝牙收到消息,关机后就没有唤醒了,再起不能。

static void simpleProfileChangeCB( uint8 paramID )

{

  switch( paramID )

  {

    case SIMPLEPROFILE_CHAR1:

{

uint8 newValue[SIMPLEPROFILE_CHAR1_LEN];

SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR1, newValue );

PRINT("profile ChangeCB CHAR1.. \n");


RTC_SetTignTime( 10*32768 );//定时10s

LowPower_Shutdown( NULL ); //这个实现不了唤醒

//CH57X_LowPower( 10*32768);//这个实现不了睡眠的样子,可以一直接收蓝牙数据

SetSysClock( CLK_SOURCE_HSI_32MHz );

DelayUs(1500);

SetSysClock( CLK_SOURCE_HSE_32MHz );

PRINT( "wake.. \n");  


      break;

}

    default:

      // should not reach here!

      break;

  }

}

同时注释了

void CH57X_BLEInit( void )

{

  ...//忽略

#if (defined (HAL_SLEEP)) && (HAL_SLEEP == TRUE)

 // cfg.WakeUpTime = WAKE_UP_RTC_MAX_TIME;  

 // cfg.sleepCB = CH57X_LowPower;  // 启用睡眠

#endif

...//忽略

}

请问官方能不能大概说一下解决方案,或者我的思路哪里有问题,谢谢啦



你好,可以加我一下微信:18951773083,我找专门负责蓝牙的技术人员跟你对接一下。


好,谢谢您,加了


您好、解决了吗?我遇到休眠唤不醒的情况,请教一下


你好,你可以加我微信18921422767,我帮你看下。


我也想实现用户自己控制低功耗-Shutdown模式(不是TMOS根据有无Event进行睡眠和RTC唤醒),蓝牙关闭,然后RTC 5s后唤醒或者按键唤醒,蓝牙开启,但不知怎么解决,调了一周了,请求帮助!


用户自己控制低功耗shutdown模式可以参照我们PM的例程去进行修改,使用的是按键唤醒,如果需要rtc唤醒可参考此链接:

https://www.cnblogs.com/debugdabiaoge/p/15900477.html


只有登录才能回复,可以选择微信账号登录