STM32-输入捕获实验

该博客详细介绍了使用STM32定时器进行输入捕获测量高电平时间的原理和步骤,包括设置定时器为上升沿捕获、清零计数器、切换到下降沿捕获,以及通过捕获值计算高电平持续时间。实验中,通过GPIO和按键触发中断,实现了LED亮灭和高电平时间的测量与显示。

 原理简介:

如图,假定定时器初始为向上计数模式,t1~t2 时间,即为测量的高电平时间

测量方法:

首先,设置定时器通道 x 为上升沿捕获,于是在 t1 时刻,就会捕获到当前的 CNT 值。

然后立即清零 CNT,并设置通道 x为下降沿捕获。

到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。

计算方法:

 CNT计数的次数等于: N*ARR+CCRx2,有了这个计数次数,再乘以 CNT 的计数周期,即可得到 t2-t1 的时间长度,即高电平持续时间。

实验方法:

GPIO_F10:推挽输出,初始设置高电平,LED灭。

GPIO_A0复用定时器5,(上升/下降沿捕获/定时器溢出)触发定时器中断

连接PF10和PA0(注:也可以PA0接地,但一定要加电阻,否则会短路)

按键在GPIO_A0与电源中间(详见电路示意图)

程序编写:

main:

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer.h"

#include "key.h"
 
 
extern u8  TIM5CH1_CAPTURE_STA;		//输入捕获状态		    				
extern u32	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoseHu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值