[STM32F10x] 利用定时器测量脉冲宽度

本文介绍了利用STM32F103C8T6的定时器测量脉冲宽度的两种方法。方法1通过在中断函数中切换捕获信号触发沿来计算脉冲宽度,而方法2则利用定时器的PWM输入模式,通过捕获单元1和2映射到同一通道记录上升沿和下降沿。文章详细阐述了配置过程及中断处理,并强调理解定时器原理的重要性。
摘要由CSDN通过智能技术生成

转载http://www.cnblogs.com/mr-bike/p/4199751.html

硬件:STM32F103C8T6

  平台: ARM-MDk V5.11

 

  前面一篇文章讲过如何利用定时器测量信号的频率(见[STM32F10x] 利用定时器测量频率),使用的是定时器的捕获/比较单元(Capture/compare),它也可以测量输入信号的脉冲宽度。

  利用定时器测量脉冲宽度有两种方法。

  方法1:

  在捕获中断函数里改变捕获信号的触发沿(上升沿触发改为下降沿触发,或者下降沿触发改为上升沿触发),通过两次触发得到的计数器的差值,来计算出脉冲宽度。这种

  方法需要定时器的配置和[STM32F10x] 利用定时器测量频率方法是一样的,不同的地方在中断函数里修改触发沿,以TIM2, 捕获通道2为例:

复制代码
        if(CapState == 0)
        {
            
            /* First time capture */
            Val1         = TIM_GetCapture2(TIM2);
            CapState     = 1;
            
            /* Change the trigger */
            TIM2->CCER         |=    1UL << 5;
        }

        else if(CapState == 1)
        {
            /* Second
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值