STM32 基于HAL库的输入捕获

使用正点原子精英版STM32F103ZET6

外部有接线方式

在同一块芯片上,使用TIMER3_CH2产生PWM波形,使用TIMER2_CH1捕获波形。将两通道外部接线连接。配置如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);          //PWM波形产生
HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);           //开始捕获并且打开中断

以上两句后会进入中断:

void TIM2_IRQHandler(void)

外部无接线方式

使用TIMER3_CH1产生PWM波形,在外部无接线的情况下,将这个PWM波引到TIMER5_CH1进行输入捕获。配置如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完成后使用以下两句可以进入TIMER5的中断

HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);          //PWM波形产生
HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1);           //开始捕获并且打开中断
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用[1]:输入捕获的原理就是,当捕获到信号的跳变沿的时候,把计数器CNT 的值锁存到捕获寄存器CCR 中,把前后两次捕获到的CCR 寄存器中的值相减,就可以算出脉宽或者频率。[1]引用[2]:在STM32 HAL库中,可以使用TIMx->CCRy寄存器来读取输入捕获的值,其中x表示定时器的编号,y表示通道的编号。通过读取CCR寄存器的值,可以获取输入捕获的时间。[2]引用[3]:在使用STM32 HAL库进行输入捕获时,可以通过设置TIMx->CCMRy寄存器来选择输入捕获的边沿触发方式,例如上升沿触发或下降沿触发。然后,可以通过设置TIMx->CCER寄存器来使能输入捕获功能。最后,可以通过读取TIMx->CCRy寄存器的值来获取输入捕获的时间。[3] 问题:STM32 HAL库输入捕获的原理是什么? 回答: STM32 HAL库中的输入捕获功能是通过捕获到信号的跳变沿来实现的。当捕获到信号的跳变沿时,将计数器CNT的值锁存到捕获寄存器CCR中,然后通过计算前后两次捕获到的CCR寄存器中的值的差值,可以得到输入信号的脉宽或频率。在STM32 HAL库中,可以使用TIMx->CCRy寄存器来读取输入捕获的值,其中x表示定时器的编号,y表示通道的编号。通过设置TIMx->CCMRy寄存器来选择输入捕获的边沿触发方式,然后通过设置TIMx->CCER寄存器来使能输入捕获功能。最后,通过读取TIMx->CCRy寄存器的值来获取输入捕获的时间。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值