睡眠事件修改


#ifndef WAKE_UP_RTC_MAX_TIME

#define WAKE_UP_RTC_MAX_TIME80


睡眠时间是改这个宏吗?我改了发现没什么效果呢?


LowPower_Sleep(RB_PWR_RAM2K|RB_PWR_RAM14K|RB_PWR_EXTEND );

SetSysClock( CLK_SOURCE_HSI_32MHz );

time+=WAKE_UP_RTC_MAX_TIME;

if( time > 0xA8C00000 )   time -= 0xA8C00000;

    RTC_SetTignTime( time );

    LowPower_Idle();

//PRINT("WAKE");


如果是在我们蓝牙例程中,睡眠的时间是由协议栈自己传的参数控制的,你是不能随意设置的,你设置的这个时间并不是睡眠时间,而是等待晶振稳定的时间,最好不要改动,如果在自己的没有使用蓝牙的工程中去想睡一段时间醒来可以有两种方式,一种是定时模式,一种是触发模式:RTC_TMRFunCfg,RTC_TRIGFunCfg。


那就是使用蓝牙的工程里面,没有办法控制睡眠时间了


时间是由协议栈上传的,知道什么时候有任务应该醒来去做,但你如果想在睡眠的时候去做自己的事情,那么你可以在睡眠函数中不调用睡眠,操作自己的事情,在rtc标志置位之后退出即可。

关于蓝牙低功耗可以看下这个链接:https://www.cnblogs.com/debugdabiaoge/p/15886638.html



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