1. STM32外部时钟源PWM测量方案解析
在嵌入式系统开发中,精确测量PWM信号频率是一项常见需求。传统方法通常使用输入捕获模式,但这种方法需要处理每个边沿中断,在低频信号测量时效率较低。本文将介绍一种基于STM32定时器外部时钟源模式的PWM频率测量方案,相比传统方法具有更高的效率和抗干扰性。
这个方案的核心思路是将PWM信号直接作为定时器的时钟源,通过计数器累加上升沿次数来计算频率。我曾在多个工业控制项目中采用这种方法,实测证明其稳定性和精度都优于输入捕获方式,特别是在1Hz-1kHz的低频段测量场景中。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件设计与时钟配置
2.1 硬件连接要点
实现这个方案需要将PWM输出引脚与测量定时器的输入通道短接。具体到STM32F1系列:
- PWM输出使用TIM2_CH1(PA0引脚)
- 频率测量使用TIM3_CH1(PA6引脚)
注意:不同STM32型号的定时器通道对应引脚可能不同,务必查阅对应型号的参考手册确认引脚分配。
硬件连接只需一根跳线将PA0与PA6短接即可。在实际项目中,如果信号传输距离较长,建议:
- 在信号线上串联100Ω电阻防止反射
- 对地并联100pF电容滤除高频噪声
- 使用双绞线减少电磁干扰
2.2 时钟树配置
系统时钟配置为72MHz,这是STM32F1系列的常见工作频率。TIM2作为PWM发生器,时钟源来自APB1总线(36MHz),经过倍频后实际定时器时钟为72MHz。
TIM3作为频率测量单元,关键配置点:
- 时钟源:外部时钟模式2
- 触发源:TI1FP1(TIM3_CH1引脚信号)
- 无内部分频(PSC=0)
- 计数器周期(ARR)设为最大值65535
3. CubeMX详细配置步骤
3.1 TIM3从模式配置
- 打开CubeMX,进入TIM3的Configuration界面
- 在Slave Mode Configuration标签下:
- Trigger Selection选择TI1FP1
- Slave Mode选择External Clock Mode 2
- Trigger Polarity选择Rising(对应PWM上升沿)
- Filter设为0(无数字滤波)
经验分享:如果PWM信
