我这边要在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 */ } |
STM CUBE AI错误导入onnx模型报错
L433单片机的SPI3,在从模式,开接收中断情况下的问题
修改stm32f407 tim14的ccr1,但是占空比不变?
修改stm32f407 tim14的ccr1,但是占空比不变
stm32L476部分电脑读不到驱动
STM32F723ZET6 定时器输入捕获通道的GPIO不能上拉
stm32f10x_tim.h文件编译错误?
AN2867的晶振布局问题
PWM输出
stm32用tim输出pwm似乎先使能一次cen再设置cnt才有用?
由外部触发信号触发才能使两个LPTIM同时工作,消除相位差。
你好,我试过了,用外部触发,选择comp1 out 后面连方波都没有了,啥情况呢?请问这里的comp1 out 是啥意思?
COMP1的选项是指用比较器1的结果做为外部触发信号来启动两个定时器同时工作,从而消除相位差。 前提是LSE作为时钟源时已经震荡起来,两个低功耗定时器的外部触发源已经选择同一个比较器的输出结果做为触发源。 当然根据条件也可以选择其他触发源。
嗯嗯 好 我这边在cubemx是这么设置的,LSE和外部触发选comp1 out,但是这个时候就没有方波了,不知道您这边是否有相应的代码,可以分享下,谢谢