一阵风-399714 发表于 2018-11-5 18:42:28

STM32L476 LPTIM 定时器使用

大家好:
      我采用 cubemx 生成 LPTIM1 的代码,但是进不了中断,没找到原因,大家有没有实例可否参考一上,或 cubemd 的配置说明,非常感谢。

      我的要求:间隔 5ms 产生一次计数中断,做为普通的定时器使用。目前还没有进入代功耗模式,只是先测试定时器。

void LPTIM1_IRQHandler(void)
{
IO_LED_G_TOOGLE;   // 没进到这一步中断
HAL_LPTIM_IRQHandler(&hlptim1);
}





一木320 发表于 2018-11-5 21:22:38

你的其他部分代码呢?兄弟

一阵风-399714 发表于 2018-11-8 16:45:24

谢谢回复!
我是直接采用 cubemx 生成的代码,如下,但是不知怎么进去中断:
Cubemx中,也没有看到可以设置定时时间的地方。芯片型号:STM32L476RC
/* LPTIM1 init function */
static void MX_LPTIM1_Init(void)
{

hlptim1.Instance = LPTIM1;
hlptim1.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC;
hlptim1.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1;
hlptim1.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE;
hlptim1.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH;
hlptim1.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE;
hlptim1.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL;
hlptim1.Init.Input1Source = LPTIM_INPUT1SOURCE_GPIO;
hlptim1.Init.Input2Source = LPTIM_INPUT2SOURCE_GPIO;
if (HAL_LPTIM_Init(&hlptim1) != HAL_OK)
{
    _Error_Handler(__FILE__, __LINE__);
}

}


void LPTIM1_IRQHandler(void)
{
IO_LED_G_TOOGLE;   // 没进到这一步中断
HAL_LPTIM_IRQHandler(&hlptim1);
}


mzy2364 发表于 2018-11-16 09:38:09

没看到开启定时器中断的函数啊,建议仿真看寄存器。

lrzxc111 发表于 2018-11-16 11:30:04

论坛的参考,我也是刚看到,楼主参考下https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=603937&fromuid=394920

chifen 发表于 2018-11-18 13:19:37

HAL_TIM_Base_Start_IT(&hlptim1);加上这条语句试试,开启中断

qihang3307 发表于 2019-5-29 17:06:24

楼主我遇到了同样的问题,请问怎么解决?
页: [1]
查看完整版本: STM32L476 LPTIM 定时器使用