同时使用两个定时器时,核心是避免资源冲突和确保时序正确。首先,确认两个定时器是否共享同一时钟源(如APB1/APB2),若分频不同,需分别配置预分频器(PSC)和自动重载(ARR),但注意定时器时钟频率可能因总线分频而不同,需用`RCC_ClocksTypeDef`获取实际频率。其次,若两个定时器需要同步(如PWM相位对齐),可使用主从模式(如TIM1为主,TIM2为从),通过`TIM_SelectMasterSlaveMode`和`TIM_SelectInputTrigger`配置。若独立使用,避免共用中断优先级,建议分配不同NVIC优先级,并检查中断标志是否冲突。实操建议:初始化时先关闭两个定时器(`TIM_Cmd(DISABLE)`),配置后同时使能,防止启动不同步。另外,注意DMA请求通道可能重叠(如TIM2_CH1和TIM3_CH1),若用DMA需确认映射。最后,调试时用逻辑分析仪观察输出,验证时序。
```c
// 示例:独立配置两个定时器
TIM_TimeBaseInitTypeDef tim1, tim2;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
// 分别设置PSC和ARR,注意时钟频率
```
mcuku 阿沐 · 2026-08-20