「纯干货」五分钟教你使用STM32测量频率和占空比
软件: altium
高精度 STM32F429DISCOVERY开发板频率与占空比测量技术深入探讨
引言
STM32F429DISCOVERY开发板作为一款采用高性能 CortexM4 处理器的微控制器,支持广泛的外设与扩展功能,特别是在精度要求较高的复杂测量任务方面展现出强大的潜力。本技术文章将专注于基于 STM32F429DISCOVERY 开发板,利用其内部定时器特性,探讨如何在低至 10Hz 和高达 2MHz 的频率范围内,精确测量脉冲信号的频率和占空比,同时评估不同测量策略的优劣,并提出实际应用中的解决方案。
测量原理与思路
思路一:外部中断
原理:通过开发板的外部中断功能监测输入脉冲信号的上升沿或下降沿。每次中断触发时,计数器值加1,完成一次中断处理后重置计数,利用中断触发周期与次数计算频率和统计上升沿或下降沿间隔计算占空比。

优点:设计简单,代码实现快捷。
缺点:随着频率提升,中断频率显著增加,导致处理器短期占用高,特别是在高频领域影响测量精度,尤其当测量占空比时误差会显著增大。
思路二:PWM输入模式
原理:OSCM backpack 提供模拟信号输入通道,通过PWM模式读取高频变化的信号细节,使用硬件逻辑内部电路进一步计算频率和占空比。
时间:实测测量数据不稳,存在跳动现象,与实际值差异较大,ST集成的某些功能存在稳定性问题。
补偿:尝试对频率公式进行线性化补偿,但效果不理想,该方法难以满足题目精度要求。
思路三:输入捕获
原理:通过设定输入捕获模式,分别捕获上升沿和下降沿,读取这些事件之间的定时器周期值与间隔值,计算频率和占空比。
优点:在中低频段(<100kHz)时,测量精度较高,适应范围较广。
缺点:同样存在处理器高占用率问题;在高频(>100kHz)下,中断频率可能过快以至于丢失部分脉冲数据,导致测量值不稳定或错误。
技术解决方案
改进一:双通道输入捕获
方法:确保一个通道专门负责上升沿捕获以保证信号完整性,同时使用另一个通道捕获下降沿。改进节省程序代码执行时间,从而降低CPU负载。
效果:最高能够实现接近 1.1MHz 的频率测量,显着提高中频段的测量精度与稳定性。
改进二:动态调整预分频值
原理:评估前次测量结果,根据实际情况动态调整预分频值(PSC),可以动态优化测量精度和处理效率。
改进三:间隔采样
方式:实施每一定周期之后执行一次采集并存储数据,在稳定数据基线上循环刷新,以减小高频操作下对CPU的负荷影响。
回顾与总结
对上述三种策略进行综合评估,外部中断提供了简便的实现方式,但对高频信号显示明显的测量限制;PWM输入读取频域细节,但稳定性不佳,未经优化难以满足专业应用需求。输入捕获方法在低频段表现出较好的稳定性和精度,通过引入双通道与改进代码逻辑结构,其测量上限可达约 1.1MHz,并进一步通过间隔采样技术实现了性能与资源利用效率的优化。
引言
STM32F429DISCOVERY开发板作为一款采用高性能 CortexM4 处理器的微控制器,支持广泛的外设与扩展功能,特别是在精度要求较高的复杂测量任务方面展现出强大的潜力。本技术文章将专注于基于 STM32F429DISCOVERY 开发板,利用其内部定时器特性,探讨如何在低至 10Hz 和高达 2MHz 的频率范围内,精确测量脉冲信号的频率和占空比,同时评估不同测量策略的优劣,并提出实际应用中的解决方案。
测量原理与思路
思路一:外部中断
原理:通过开发板的外部中断功能监测输入脉冲信号的上升沿或下降沿。每次中断触发时,计数器值加1,完成一次中断处理后重置计数,利用中断触发周期与次数计算频率和统计上升沿或下降沿间隔计算占空比。

优点:设计简单,代码实现快捷。
缺点:随着频率提升,中断频率显著增加,导致处理器短期占用高,特别是在高频领域影响测量精度,尤其当测量占空比时误差会显著增大。
思路二:PWM输入模式
原理:OSCM backpack 提供模拟信号输入通道,通过PWM模式读取高频变化的信号细节,使用硬件逻辑内部电路进一步计算频率和占空比。
时间:实测测量数据不稳,存在跳动现象,与实际值差异较大,ST集成的某些功能存在稳定性问题。
补偿:尝试对频率公式进行线性化补偿,但效果不理想,该方法难以满足题目精度要求。
思路三:输入捕获
原理:通过设定输入捕获模式,分别捕获上升沿和下降沿,读取这些事件之间的定时器周期值与间隔值,计算频率和占空比。
优点:在中低频段(<100kHz)时,测量精度较高,适应范围较广。
缺点:同样存在处理器高占用率问题;在高频(>100kHz)下,中断频率可能过快以至于丢失部分脉冲数据,导致测量值不稳定或错误。
技术解决方案
改进一:双通道输入捕获
方法:确保一个通道专门负责上升沿捕获以保证信号完整性,同时使用另一个通道捕获下降沿。改进节省程序代码执行时间,从而降低CPU负载。
效果:最高能够实现接近 1.1MHz 的频率测量,显着提高中频段的测量精度与稳定性。
改进二:动态调整预分频值
原理:评估前次测量结果,根据实际情况动态调整预分频值(PSC),可以动态优化测量精度和处理效率。
改进三:间隔采样
方式:实施每一定周期之后执行一次采集并存储数据,在稳定数据基线上循环刷新,以减小高频操作下对CPU的负荷影响。
回顾与总结
对上述三种策略进行综合评估,外部中断提供了简便的实现方式,但对高频信号显示明显的测量限制;PWM输入读取频域细节,但稳定性不佳,未经优化难以满足专业应用需求。输入捕获方法在低频段表现出较好的稳定性和精度,通过引入双通道与改进代码逻辑结构,其测量上限可达约 1.1MHz,并进一步通过间隔采样技术实现了性能与资源利用效率的优化。