STM32 输入捕获的脉冲宽度及频率计算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32 输入捕获的脉冲宽度及频率计算相关的知识,希望对你有一定的参考价值。

 1 TIM8_Cap_Init(0XFFFF,72-1);    //以1Mhz的频率计数
 2 voidTIM8_CC_IRQHandler(void)
 3 {  
 4     if(TIM_GetITStatus(TIM8,TIM_IT_CC4)!=RESET)   
 5     {       
 6         TIM_ClearITPendingBit(TIM8, TIM_IT_CC4);    //清除中断标志位
 7         if(state==0)                                                 //捕获第一个上升沿          
 8         {               
 9             state=1;          
10             timecount=TIM_GetCapture4(TIM8);          //记录第一次上升沿的CNT值       
11         }       
12         else if(state==1)                                           //捕获第二个上升沿      
13         {                  
14            state=0;          
15            timecount1=TIM_GetCapture4(TIM8);         //记录第二次上升沿的CNT值
16            if(timecount//两次上升沿的差值           
17         }           
18         else if(timecount>timecount1)          
19        {                
20            test=(0xffff-timecount)+timecount1;          //两次上升沿的差值           
21         }           
22        else             
23            test=0;             
24        fq=1000000/test;                                        //脉冲的频率       
25    }
26 }

 

以上是关于STM32 输入捕获的脉冲宽度及频率计算的主要内容,如果未能解决你的问题,请参考以下文章

绵绵STM32学习——输入捕获

stm32的输入捕获实验程序问题(测量脉冲宽度)

STM32的输入捕获实验

STM32使用定时器实现输入捕获

STM32 HAL库学习系列第7篇---定时器TIM 输入捕获功能

[pwm]PWM的输入捕捉模式