你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

LPTIM

[复制链接]
cj2333 提问时间:2021-6-8 22:33 / 未解决
我这边要在stop模式下让LPTIM1和LPTIM2输出两路相同的PWM,不管是用LSI还是LSE都会有200us的相位差,

但是不在stop模式下用内部主频的4Mhz的时钟源,就没有200us相位差,有人知道这是啥问题吗,谢谢
代码附上:
while (1)
  {

        HAL_LPTIM_PWM_Start(&hlptim1,32-1,16-1);
        HAL_LPTIM_PWM_Start(&hlptim2,32-1,16-1);
        HAL_Delay (2500);
        HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);  //直接进入停止模式,中断唤醒。然后时间到了就会唤醒

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

  PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_LPTIM1
                              |RCC_PERIPHCLK_LPTIM2;
  PeriphClkInit.Lptim1ClockSelection = RCC_LPTIM1CLKSOURCE_LSE;
  PeriphClkInit.Lptim2ClockSelection = RCC_LPTIM2CLKSOURCE_LSE;
  PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;

void MX_LPTIM1_Init(void)
{

  /* USER CODE BEGIN LPTIM1_Init 0 */

  /* USER CODE END LPTIM1_Init 0 */

  /* USER CODE BEGIN LPTIM1_Init 1 */

  /* USER CODE END LPTIM1_Init 1 */
  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_LOW;
  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();
  }
  /* USER CODE BEGIN LPTIM1_Init 2 */

  /* USER CODE END LPTIM1_Init 2 */

}


捕获.GIF
收藏 评论4 发布时间:2021-6-8 22:33

举报

4个回答
butterflyspring 回答时间:2021-6-11 15:54:55
首先需要使能LSE, 然后选择LP timer1 和 2 的工作模式为 Counts internal colock events ,其次选择 external trigger .
由外部触发信号触发才能使两个LPTIM同时工作,消除相位差。
LPTIMER  MODE L4.PNG
cj2333 回答时间:2021-6-16 16:58:57
butterflyspring 发表于 2021-6-11 15:54
首先需要使能LSE, 然后选择LP timer1 和 2 的工作模式为 Counts internal colock events ,其次选择 extern ...

你好,我试过了,用外部触发,选择comp1 out  后面连方波都没有了,啥情况呢?请问这里的comp1 out 是啥意思?
butterflyspring 回答时间:2021-6-17 11:13:37
cj2333 发表于 2021-6-16 16:58
你好,我试过了,用外部触发,选择comp1 out  后面连方波都没有了,啥情况呢?请问这里的comp1 out 是啥 ...

COMP1的选项是指用比较器1的结果做为外部触发信号来启动两个定时器同时工作,从而消除相位差。 前提是LSE作为时钟源时已经震荡起来,两个低功耗定时器的外部触发源已经选择同一个比较器的输出结果做为触发源。 当然根据条件也可以选择其他触发源。
cj2333 回答时间:2021-6-20 20:45:29
butterflyspring 发表于 2021-6-17 11:13
COMP1的选项是指用比较器1的结果做为外部触发信号来启动两个定时器同时工作,从而消除相位差。 前提是LSE ...

嗯嗯 好 我这边在cubemx是这么设置的,LSE和外部触发选comp1 out,但是这个时候就没有方波了,不知道您这边是否有相应的代码,可以分享下,谢谢
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版