STM32 hal库中PWM配置与使用
PWM 方波输出,用的是【输出比较 Output Compare】,不是输入捕获 Input Capture
- ✅输出比较(OC):定时器往外输出波形(PWM、方波),属于输出功能,就是你现在 TIM3_CH1 这个 PWM Generation 通道。
- ❌输入捕获(IC):定时器去读取外部输入的方波,用来测脉冲宽度、测频率,是接收、测量,不是输出。
原理对照(结合你这个舵机 PWM)
定时器一直在向上计数 CNT:
- 输出比较模式(PWM):
你设置好 ARR(周期)、CCR(比较值)。
硬件自动判断:CNT 和 CCR 比较,到了比较点就翻转输出引脚电平,自动生成方波 / PWM。全程硬件自动翻转,CPU 不用干预。
对应 CubeMX 选项:PWM Generation CHx
- 输入捕获模式:
外部方波接到定时器引脚,引脚边沿触发捕获,硬件锁存此刻 CNT 的值,软件读取这个计数值,用来计算外部信号的周期、高电平时间。
对应 CubeMX 选项:Input Capture direct mode
表格区分
| 模式 | 方向 | 用途 | 你的场景 |
|---|---|---|---|
| 输出比较 OC | 单片机 → 外部(输出) | 产生 PWM、方波、脉冲 | 舵机、电机驱动、LED 调光 |
| 输入捕获 IC |