STM32F407定时器输入捕获

在这里插入图片描述STM32F407定时器一共有14个。其中分为基本定时器、通用定时器、高级定时器。具体功能如上图所示。下面介绍下输入捕获模式。
输入捕获:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变的时候,将当前的定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器里面,完成一次捕获.
下图是定时器原理图的输入捕获部分
在这里插入图片描述
第一部分:设置输入捕获滤波器,用来滤波的。信号从TI1输入,通过滤波,TI1F输出此信号,正常情况信号没有抖动,TI1F信号就等于TI1输入信号。
ICF[3:0]用来设置输入采样频率的数字滤波器长度,如ICF=0011;会在捕获到上升沿时,以fCK_INT的频率连续采样八次通道1的电平,若都为高电平,则说明这是一个有效的触发,就会触发捕获中断,这样就可以滤除那些高电平脉宽低于八个采样周期的脉冲信号,达到滤波得效果,若不做滤波处理,设置ICF=0000,只要检测到跳边沿,就触发捕获。
在这里插入图片描述
fDTS频率根据TIMx_CR1的CKD[1:0]设置。
在这里插入图片描述
第二部分:设置输入捕获极性:配置边沿检测器检测上升沿还是下降沿。
在这里插入图片描述 第三部分:设置输入捕获映射通道:通道一信号也可以映射在通道二上,同理通道二信号也可以映射到通道一上。
在这里插入图片描述
第四部分:设置输入捕获分频器,就是设置检测到几次跳变沿之后触发捕获。
在这里插入图片描述
第五部分:捕获到有效信号开启中断。
在这里插入图片描述
下面是标准库中的结构体和初始化函数。

void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
typedef struct
{
  uint16_t TIM_Channel; //捕获通道1-4   
  uint16_t TIM_ICPolarity; //捕获极性
  uint16_t TIM_ICSelection; //映射关系
  uint16_t TIM_ICPrescaler; //分频系数
  uint16_t TIM_ICFilter;  //滤波器
} TIM_ICInitTypeDef;
TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; 捕获通道选择通道一
TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; 设置为上升沿捕获
TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;  把通道一和TI1映射在一起
TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; 设置分频系数1分频
TIM5_ICInitStructure.TIM_ICFilter = 0x00; 不使用滤波器
TIM_ICInit(TIM5, &TIM5_ICInitStructure); 

还可以独立设置捕获极性

void TIM_OCxPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)

获取通道捕获数值

uint32_t TIM_GetCapture1(TIM_TypeDef* TIMx);

输入捕获配置的一般步骤
① 初始化定时器和通道对应IO的时钟。
② 初始化IO口,模式为复用:GPIO_Init();
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
③设置引脚复用映射:
GPIO_PinAFConfig();
④初始化定时器ARR,PSC
TIM_TimeBaseInit();
⑤初始化输入捕获通道
TIM_ICInit();
⑥如果要开启捕获中断,
TIM_ITConfig();
NVIC_Init();
⑦使能定时器:TIM_Cmd();
⑧编写中断服务函数:TIMx_IRQHandler();

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值