STM32 hal库中PWM配置与使用

PWM 方波输出,用的是【输出比较 Output Compare】,不是输入捕获 Input Capture

  • ✅输出比较(OC):定时器往外输出波形(PWM、方波),属于输出功能,就是你现在 TIM3_CH1 这个 PWM Generation 通道。
  • ❌输入捕获(IC):定时器去读取外部输入的方波,用来测脉冲宽度、测频率,是接收、测量,不是输出。

原理对照(结合你这个舵机 PWM)

定时器一直在向上计数 CNT:

  1. 输出比较模式(PWM):

你设置好 ARR(周期)、CCR(比较值)。

硬件自动判断:CNT 和 CCR 比较,到了比较点就翻转输出引脚电平,自动生成方波 / PWM。全程硬件自动翻转,CPU 不用干预。

对应 CubeMX 选项:PWM Generation CHx

  1. 输入捕获模式:

外部方波接到定时器引脚,引脚边沿触发捕获,硬件锁存此刻 CNT 的值,软件读取这个计数值,用来计算外部信号的周期、高电平时间。

对应 CubeMX 选项:Input Capture direct mode

表格区分

模式方向用途你的场景
输出比较 OC单片机 → 外部(输出)产生 PWM、方波、脉冲舵机、电机驱动、LED 调光
输入捕获 IC