
我这边要在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 */ } |
STM32L433单片机如何在调试的时候关闭看门狗
STM32MP135D的TIM2使用ETR作为外部时钟时,无法使用PE15作为输入
STM32L433 驱动LCD断码屏,怎么单独让某个数字闪烁
STM32L433 使用LCD控制器驱动段码屏,有什么LCD降低功耗的方法吗?
stm32H743 定时器溢出
STM32L433VCT6 LCD复用引脚如何分配?(同一个引脚同一个复用功能里还有三类引脚)
STM32驱动段码屏,有一个14段数字,有4个段位没有显示
STM32L431偶发串口乱码问题。
ADC差分采样
请问大佬们,L433进入stop2模式还有874uA的电流,有什么排查的办法吗?
由外部触发信号触发才能使两个LPTIM同时工作,消除相位差。
你好,我试过了,用外部触发,选择comp1 out 后面连方波都没有了,啥情况呢?请问这里的comp1 out 是啥意思?
COMP1的选项是指用比较器1的结果做为外部触发信号来启动两个定时器同时工作,从而消除相位差。 前提是LSE作为时钟源时已经震荡起来,两个低功耗定时器的外部触发源已经选择同一个比较器的输出结果做为触发源。 当然根据条件也可以选择其他触发源。
嗯嗯 好 我这边在cubemx是这么设置的,LSE和外部触发选comp1 out,但是这个时候就没有方波了,不知道您这边是否有相应的代码,可以分享下,谢谢