注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zpehome的博客

Hope is a good thing,the best of things

 
 
 

日志

 
 

STM32L151定时从Stop模式定时唤醒  

2012-12-13 15:28:54|  分类: 嵌入式软件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

void StopRTCLSIMode(int count)

{

EXTI_InitTypeDef EXTI_InitStructure;

PWR_RTCAccessCmd(ENABLE);//Allow access to RTC

RCC_LSICmd(ENABLE);//LSI Enable

while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY)==RESET);//wait till LSI is ready

RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);//RTC Clock Source Selection

RCC_RTCCLKCmd(ENABLE);//Enable RTC clock

RTC_WaitForSynchro();//wait for RTC APB registers synchronisation

EXTI_ClearITPendingBit(EXTI_Line20);//配置唤醒中断

EXTI_InitStructure.EXTI_Line = EXTI_Line20;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

RTC_WakeUpCmd(DISABLE);//禁止唤醒计数器

RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);//唤醒时钟16分频

RTC_SetWakeUpCounter(count);//设置唤醒计数器

RTC_ITConfig(RTC_IT_WUT,EBANLE);//使能唤醒中断

RTC_WakeUpCmd(ENABLE);//使能唤醒计数器

}

 

//唤醒中断

void RTC_WKUP_IRQHandler(void)

{

if(RTC_GetITStatus(RTC_IT_WUT)!=RESET)

{

RTC_ClearITPendingBit(RTC_IT_WUT);

EXTI_ClearITPendingBit(EXTI_Line20);

Systeminit();

StopRTCLSIMode(2312)//~1S 再次初始化定时唤醒时间

//重新初始化外设

isWKUP = 1;

}

}

在主函数中

int main(void)

{

//TO DO

//1.初始化定时唤醒

//2.进入低功耗模式

while(1)

{

if(isWKUP)

{

isWKUP = 0;

//TO DO 唤醒后干一些事情

StopRTCLSIMode(2312)//~1S 再次初始化定时唤醒时间

//进入低功耗模式

}

}

}


  评论这张
 
阅读(1573)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017