[STM32L4] STM32L4 LPTIM无法进入中断,从STOP模式唤醒

[复制链接]
3483|9
 楼主| kyzb003 发表于 2019-1-24 18:17 | 显示全部楼层 |阅读模式
代码如下, 根据官方例子等都不能进入中断,LSE可以使用(LPUART使用LSE能正常工作),调试过程中进入过2次, 手贱没保存。  求救。

  1. #include "lptim.h"

  2. LPTIM_HandleTypeDef LptimHandle;

  3. void LPTIM1_IRQHandler(void)
  4. {
  5.     HAL_LPTIM_IRQHandler(&LptimHandle);
  6.    
  7.     log(DEBUG,"lptim count=%u\n" , HAL_LPTIM_ReadCounter(&LptimHandle));
  8.    
  9. }

  10. void HAL_LPTIM1_MspInit(LPTIM_HandleTypeDef *lptimHandle)
  11. {
  12.     __HAL_RCC_LPTIM1_CLK_ENABLE();

  13.     HAL_NVIC_SetPriority(LPTIM1_IRQn, 5, 0);
  14.     HAL_NVIC_EnableIRQ(LPTIM1_IRQn);

  15. }
  16. #define Period               (uint32_t) 65535
  17. #define Timeout              (uint32_t) (32768 - 1)

  18. int lptim_hal_init(void)
  19. {
  20.     RCC_PeriphCLKInitTypeDef        RCC_PeriphCLKInitStruct;       
  21.    
  22.     HAL_Delay(2000);

  23.         /* Select the LSE clock as LPTIM peripheral clock */
  24.     RCC_PeriphCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LPTIM1;
  25.     RCC_PeriphCLKInitStruct.Lptim1ClockSelection = RCC_LPTIM1CLKSOURCE_LSE;  
  26.     HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphCLKInitStruct);

  27.     LptimHandle.Instance = LPTIM1;

  28.     LptimHandle.Init.Clock.Source    = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
  29.     LptimHandle.Init.CounterSource   = LPTIM_COUNTERSOURCE_INTERNAL;
  30.     LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;  
  31.     LptimHandle.Init.Trigger.Source  = LPTIM_TRIGSOURCE_SOFTWARE;
  32.     LptimHandle.Init.OutputPolarity  = LPTIM_OUTPUTPOLARITY_HIGH;
  33.     LptimHandle.Init.UpdateMode      = LPTIM_UPDATE_IMMEDIATE;
  34.     LptimHandle.Init.Input1Source    = LPTIM_INPUT1SOURCE_GPIO;
  35.     LptimHandle.Init.Input2Source    = LPTIM_INPUT2SOURCE_GPIO;

  36.     if (HAL_LPTIM_Init(&LptimHandle) != HAL_OK)
  37.     {
  38.         Error_Handler(__FILE__,__LINE__);
  39.     }
  40.     INIT_PRINT(INIT_OK,"LPTIM1 init");
  41.    
  42.     if (HAL_LPTIM_Counter_Start(&LptimHandle, 1000) != HAL_OK)
  43.     {
  44.         Error_Handler(__FILE__,__LINE__);
  45.     }

  46.     HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WFI);
  47.    
  48.     log(DEBUG,"lptime init\n");
  49.   
  50.     return 0;
  51. }



caoenq 发表于 2019-1-25 09:27 | 显示全部楼层
因为你根本就没开中断,当然进不去
香水城 发表于 2019-1-25 11:15 | 显示全部楼层
楼上提醒是有道理的。
HAL库里都有现存代码,你可以比较参考下。
21mengnan 发表于 2019-1-25 14:47 | 显示全部楼层
哈哈,中断没开,
21mengnan 发表于 2019-1-25 14:49 | 显示全部楼层
楼主睡醒了,哭哭啼啼,人家问他哭啥,他说他梦见女朋友跟他分手了。
旁边人上去就是一巴掌,你丫什么时候有过女朋友?
maleisj 发表于 2019-1-27 14:14 | 显示全部楼层
是不是触发源 选的不对或者根本没有触发
paotangsan 发表于 2019-2-19 13:06 | 显示全部楼层
在中断向量那解除屏蔽了吗
蒙牛灬伊利 发表于 2019-5-29 17:02 | 显示全部楼层
楼主,我遇到了同样的问题,怎么解决的?
 楼主| kyzb003 发表于 2019-6-5 18:17 | 显示全部楼层
蒙牛灬伊利 发表于 2019-5-29 17:02
楼主,我遇到了同样的问题,怎么解决的?

设置问题, 你好需要吗, 我贴源码上来, 不过要换电脑
小蝴蝶 发表于 2021-4-26 09:34 | 显示全部楼层
楼主你好,我也遇到了这个问题,请问可以要一份代码学习一下吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

34

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部