首页 > 代码库 > STM32 输入捕获的脉冲宽度及频率计算
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 输入捕获的脉冲宽度及频率计算
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。