1. 定时器输出比较模块的工程本质
在嵌入式系统开发中,定时器远不止是一个简单的计数装置。当它被配置为输出比较(Output Compare, OC)模式时,其核心价值在于将高精度时基转化为可控的数字波形信号——这是一种从“时间”到“行为”的关键映射。STM32系列MCU的通用定时器(如TIM2、TIM3)和高级定时器(如TIM1、TIM8)均具备此能力,但其底层逻辑与工程配置存在显著差异。理解输出比较,本质上是理解如何让硬件自动完成原本需要CPU频繁干预的波形生成任务。
输出比较模块并非孤立存在,它与定时器的时基单元(Counter Unit)深度耦合。时基单元提供精确的时间刻度(由APB总线时钟经预分频后得到),而输出比较单元则在此刻度上执行“决策”:在计数器值(CNT)达到某个预设阈值(CCR寄存器值)的瞬间,改变输出引脚的状态。这个过程完全由硬件逻辑完成,无需CPU介入,从而释放了宝贵的处理器资源,并保证了波形边沿的绝对确定性。这种硬件自动化正是嵌入式实时控制系统的基石。
一个常被忽视的关键点是,输出比较的“输出”并非直接驱动外部引脚,而是一个中间参考信号(OCxREF)。这个信号是后续所有输出行为的源头,其电平状态由CNT与CCR的比较结果及所选工作模式共同决定。真正的GPIO引脚输出,是在OCxREF信号经过一系列可配置的“路径选择”(包括极性控制、死区插入、互补输出等)之后才最终形成的。因此,将OCxREF视为一个“波形蓝图”,而将后续的路径视为对蓝图的“施工方案”,是理解整个流程最清晰的视角。
2. PWM信号生成:从原理到参数配置
脉冲宽度调制(Pulse Width Modulation, PWM)是输出比较最经典、应用最广泛的应用场景。其