ch579 低功耗模式下使用RTC唤醒的例程有人有吗?
你好,请问你是使用蓝牙开启低功耗然后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解答,祝你们双节快乐!到时候有问题再提出
请问官方技术人员,现在我想在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唤醒可参考此链接: