STM32对HAL库的输入捕获应用

基本方法

1.设置TIM2 CH1为输入捕获功能; 

2.设置上升沿捕获; 

3.使能TIM2 CH1捕获功能; 

4.捕获到上升沿后,存入capture_buf[0],改为捕获下降沿;

 5.捕获到下降沿后,存入capture_buf[1],改为捕获上升沿; 

6.捕获到上升沿后,存入capture_buf[2],关闭TIM2 CH1捕获功能; 

7.计算:capture_buf[2] - capture_buf[0]就是周期,capture_buf[1] - capture_buf[0]就是高电平所占时间。

 

参考的两篇博客:

https://www.cnblogs.com/Allen5G/p/11145912.html

https://www.baidu.com/link?url=sp9miYcfH7d4D-PJ9eKbmSxRdCG-8Fac3fvoKLBZnrDJzVYjHEssIjPGI-jt1_ryLGy_AMzKN34-O8hvalzL9L1obwLtb2Z4Ttd910vmoML2pZF7-tlNvShxUPhshSn7&wd=&eqid=ce9fd35d001f2429000000065ec771a8

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值