上一篇中介绍了PWM输入模式测量频率和占空比的方法,以及该方法的局限性,提出输入捕获模式在实际应用中的优势。博文链接:STM32 PWM输入模式测量频率和占空比 HAL库
下面记录输入捕获模式测频率的方法,使用F407开发板与cubemx进行配置(选择开发板、开启外部时钟和SW调试接口、Project Manager设置相关操作略过)
TIM工作模式配置
参数设置(与程序中频率的计算直接相关)
PSC将影响你能测到的最大和最小频率,一定要根据频率输入的范围设置。自动重载值设置为最大以充分利用资源,滤波器可以根据项目需要设置,也可以不设置(我习惯给个5,然后程序里面直接读就不滤波了)
生成代码并计算频率
F1 = 84000000/128/HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_1);
只需要读取通道1的CCR即可得到频率,并且无需使用中断,将该语句放在需要读取频率的地方即可。
思考
这种方法以简单的方式实现了对输入频率的捕捉,具有不占用任何中断资源的优势。不足之处在于无法测量占空比