中央对齐模式(Center-Aligned Mode)下,当配置为 模式3(CMS[1:0] = 11) 时,定时器会同时触发 上溢中断(ARR中断) 和 下溢中断(0中断),即一个PWM周期内会有 两次更新中断。以下是关键总结:
中断类型 | 触发条件 | 计数器动作 | 中断标志 |
---|---|---|---|
上溢中断 | 计数器达到 ARR (最大值) |
递增 → 递减 | UIF (更新中断标志) |
下溢中断 | 计数器达到 0 (最小值) |
递减 → 递增 | UIF (更新中断标志) |
结果:
每个PWM周期触发两次更新中断,分别对应计数器在三角波的波峰(ARR)和波谷(0)。
模式选择:
TIMx->CR1 |= TIM_CR1_CMS; // CMS[1:0]=11 (模式3)
模式1/2:仅单次中断(上溢或下溢)。
模式3:双次中断(上溢+下溢)。
中断使能:
需同时开启更新中断:
TIMx->DIER |= TIM_DIER_UIE; // 使能更新中断
在中断函数中需:
检查中断标志:
if (TIMx->SR & TIM_SR_UIF) { // 检查更新中断标志 // 处理逻辑 }
区分上下溢:
通过计数方向标志 TIMx_CR1.DIR
判断当前状态:
if (TIMx->CR1 & TIM_CR1_DIR) { // DIR=1: 递减阶段 → 触发下溢中断 (计数器到0) } else { // DIR=0: 递增阶段 → 触发上溢中断 (计数器到ARR) }
清除标志位:
TIMx->SR &= ~TIM_SR_UIF; // 清除中断标志
需求 | 推荐模式 | 中断次数 |
---|---|---|
需要精确控制PWM对称性 | 模式3 | 2次/周期 |
降低CPU中断负载 | 模式1或2 | 1次/周期 |
实时更新PWM占空比 | 模式3 | 双时机同步 |
中断频率翻倍:
若PWM频率为10kHz,模式3的中断频率为 20kHz,需确保ISR执行时间足够短。
占空比更新时机:
在 上溢中断(ARR) 中更新占空比(CCRx
),可确保下一周期生效,避免脉冲断裂。
硬件资源消耗:
双中断模式会显著增加CPU负载,在复杂系统中需评估性能瓶颈。