STM32F103 PWM波形生成与定时器配置详解

1. STM32F103C8T6 PWM波形生成基础解析

在嵌入式开发领域,PWM(脉冲宽度调制)技术堪称"万能工具"。从电机转速控制到LED调光,从音频合成到电源管理,几乎每个实际项目都会用到这项基础却强大的技术。STM32F103C8T6作为经典的Cortex-M3内核微控制器,其定时器模块提供了灵活可靠的PWM生成能力。

我曾在多个工业控制项目中深度使用STM32F103的PWM功能,从简单的风扇调速到复杂的步进电机驱动,积累了不少实战经验。与许多初学者一样,刚开始接触PWM时我也走过弯路——要么波形频率不对,要么占空比调节不灵敏,甚至出现过因配置错误导致整个定时器模块锁死的情况。本文将结合这些经验教训,带你深入理解STM32标准库中TIM输出比较模式的PWM实现方法。

硬件准备提示:本文示例基于STM32F103C8T6最小系统板(俗称"蓝 pill"板),使用TIM3_CH2通道(对应PA7引脚)。实际开发时请根据具体型号核对引脚复用功能,避免硬件冲突。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. TIM输出比较模式工作原理

2.1 定时器基本架构

STM32的通用定时器(TIMx)是一个复杂的数字电路系统,理解其内部结构对正确配置PWM至关重要。以TIM3为例,其核心组件包括:

  1. 时基单元:由预分频器(PSC)、自动重载寄存器(ARR)和计数器(CNT)构成,决定PWM的周期。例如当系统时钟为72MHz,PSC设为71,ARR设为999时:

    • 定时器时钟 = 72MHz / (71+1) = 1MHz
    • PWM周期 = (999+1) / 1MHz = 1ms → PWM频率=1kHz
  2. 比较捕获通道:每个定时器有4个独立通道(CH1-CH4),每个通道包含:

    • 捕获/比较寄存器(CCRx):决定PWM脉冲的占空比
    • 输出控制电路:管理极性、死区等高级功能
  3. 控制逻辑:包括触发控制器、从模式控制器等,用于复杂应用场景

2.2 输出比较模式详解

在PWM模式1下,定时器工作流程如下:

  1. 计数器CNT从0开始递增
  2. 当CNT < CCRx时,输出有效电平(可通过极性设置)
  3. 当CNT ≥ CCRx时,输出无效电平
  4. CNT达到ARR值时自动清零,开始新周期

内容推荐

已经到底了哦
已经到底了哦