Stm32F4x采用外部触发法测矩形波频率和占空比

本文介绍了使用STM32F4x通过外部触发法来高精度测量矩形波频率和占空比的方法。避免了中断响应导致的精度下降问题,采用TIM3定时1秒,TIM2作为外部时钟输入或从模式、门控模式测量。通过Matlab线性补偿,实现了各频段小于0.01%的测量误差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:采用外部触发法测矩形波频率和占空比,结合线性补偿,各频段矩形波测量误差均在0.01%以下。
关键词:外部时钟输入、外部触发使能、从模式、门控模式
一、 方案总体介绍
本方案未采用外部中断测频和定时器输入捕获测占空比,原因是在测高频时,中断频率过高,CPU频繁响应中断,导致测量精度严重下降。故采用以下方案:
频率测量方案:用定时器TIM3定时1秒,定时器TIM2设置为外部时钟输入(将要测量的矩形波作为时钟输入)。1秒后,取出TIM2计数器的值,即是所要测量的矩形波的频率。由于存在系统误差,进行多次测量,用Matlab拟合曲线,进行线性补偿。
占空比测量方案:为节省外设资源,对定时器TIM2进行分时复用,即在测频完成后,更改定时器设置,再进行测量占空比。用定时器TIM3定时1秒,定时器TIM2设置从模式、门控模式(高电平定时器时钟使能),触发源为外部触发。1秒后,取出TIM2计数器的值,进行时间计算,得出1秒内高电平的时间,进而计算出占空比。之后同样进行线性补偿。
二、 方案具体实施

  1. 主函数编写。
    在这里插入图片描述
  2. 在timer.h进行函数声明。
    在这里插入图片描述
  3. TIM3初始化,开启中断。
    在这里插入图片描述
  4. TIM3的中断子函数编写。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值