OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4134|回复: 5

求助,stop模式下使用定时器超时事件唤醒

[复制链接]

10

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-11-26
在线时间
10 小时
发表于 2016-7-23 15:27:23 | 显示全部楼层 |阅读模式
30金钱
最近在搞低功耗实验,想要通过定时器超时产生一个超时事件来唤醒进入stop模式的机器,我用的是stm32l051这款低功耗芯片,里面有个LPTIM
[mw_shl_code=c,true]/* Configure the System clock to have a frequency of 2 MHz (Up to 32MHZ possible) */
  SystemClock_Config();
       
          /* Enable the LSI source */
  LSI_ClockEnable();


  /* Add your application code here*/
        /* ### - 1 - Re-target the LSI to Clock the LPTIM Counter ################# */
  /* Select the LSI clock as LPTIM peripheral clock */
  RCC_PeriphCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LPTIM1;
  RCC_PeriphCLKInitStruct.LptimClockSelection = RCC_LPTIM1CLKSOURCE_LSI;
  HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphCLKInitStruct);
       
       
        /* ### - 2 - Initialize LPTIM peripheral ################################## */
  /*
   *  Instance        = LPTIM1.
   *  Clock Source    = APB or LowPowerOSCillator (in this example LSI is
   *                    already selected from the RCC level).
   *  Counter source  = Internal event.   
   *  Clock prescaler = 1 (No division).
   *  Counter Trigger = Trigger1: PC3 or PB6 (PB6 in this example).
   *  Active Edge     = Rising edge.
   */

  LptimHandle.Instance = LPTIM1;
  
  LptimHandle.Init.Clock.Source       = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
  LptimHandle.Init.Clock.Prescaler    = LPTIM_PRESCALER_DIV1;  
  //LptimHandle.Init.Trigger.Source     = LPTIM_TRIGSOURCE_0;
  //LptimHandle.Init.Trigger.ActiveEdge = LPTIM_ACTIVEEDGE_RISING;
  LptimHandle.Init.CounterSource      = LPTIM_COUNTERSOURCE_INTERNAL;
       
       
        /* Initialize LPTIM peripheral according to the passed parameters */
  HAL_LPTIM_Init(&LptimHandle);
       
        EXTI->EMR|=(0x1<<29);
        EXTI->IMR|=(0x1<<29);
       
       
        LPTIM1->CFGR |= 0x00080000;
        LPTIM1->IER |=0x1;
        LPTIM1->ARR =65535;
        LPTIM1->CMP =37000;
        LPTIM1->CR |=  0x00000004;
        LPTIM1->CR |=  0x00000001;
       

       
        HAL_Delay(1000);
        HAL_Delay(1000);
        HAL_Delay(1000);
        HAL_Delay(1000);
        HAL_Delay(1000);
        HAL_Delay(1000);
        HAL_Delay(1000);
        HAL_Delay(1000);
        HAL_Delay(1000);
       
        __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
        HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFE);
       
       
          SystemClock_Config();
       
          /* Enable the LSI source */
  LSI_ClockEnable();
[/mw_shl_code]

QQ截图20160723152144.png
QQ截图20160723152201.png
QQ截图20160723152214.png
QQ截图20160723152340.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-11-26
在线时间
10 小时
 楼主| 发表于 2016-7-23 15:28:16 | 显示全部楼层
有没有大神帮忙看一下哪里配置有问题,一直不能唤醒啊
回复

使用道具 举报

10

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-11-26
在线时间
10 小时
 楼主| 发表于 2016-7-23 15:36:48 | 显示全部楼层
@原子哥 出来帮帮忙咯
回复

使用道具 举报

10

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-11-26
在线时间
10 小时
 楼主| 发表于 2016-7-23 15:40:18 | 显示全部楼层
@正点原子 原子哥,出来帮帮忙咯
回复

使用道具 举报

10

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-11-26
在线时间
10 小时
 楼主| 发表于 2016-7-23 19:26:26 | 显示全部楼层
人工置顶
回复

使用道具 举报

10

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-11-26
在线时间
10 小时
 楼主| 发表于 2016-7-23 19:46:24 | 显示全部楼层
人工置顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 13:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表