// 假设使用TIMx, 定时器频率为APB1频率的1/1000
// 设置定时器时钟
__HAL_RCC_TIMx_CLK_ENABLE();
TIM_HandleTypeDef htimx;
htimx.Instance = TIMx; // 定时器实例
htimx.Init.Prescaler = (HAL_RCC_GetPCLK1Freq() / 1000000) - 1; // 设置预分频器
htimx.Init.CounterMode = TIM_COUNTERMODE_UP; // 向上计数模式
htimx.Init.Period = 1000 - 1; // 自动重装载寄存器的值
htimx.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; // 时钟分频
htimx.Init.RepetitionCounter = 0;
HAL_TIM_PWM_Init(&htimx); // 初始化PWM
|