我是靠谱客的博主 高贵舞蹈,最近开发中收集的这篇文章主要介绍stm32采集脉冲信号_STM32 输入捕获的脉冲宽度及频率计算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。以下是对脉冲宽度及频率的计算。

1、脉冲宽度

如下图所示,采集该高电平脉冲的宽度,只需要进入输入捕获上升沿检测,记录当前的发生上升沿时的CNT值,再进行输入捕获下降沿检测,也记录当前发生下降沿时的CNT值,两次CNT值的差值再根据计数的频率就可以算出脉冲的宽度。

上升沿及下降沿捕获的程序具体实现如下:

TIM8_Cap_Init(0XFFFF,72-1); //以1Mhz的频率计数

void TIM8_UP_IRQHandler(void)

{

if((TIM8CH4_CAPTURE_STA&0X80)==0) //还未成功捕获

{

if (TIM_GetITStatus(TIM8,TIM_IT_Update) != RESET)

{

if(TIM8CH4_CAPTURE_STA&0X40) //已经捕获到高电平了

{

if((TIM8CH4_CAPTURE_STA&0X3F)==0X3F) //高电平太长了

{

TIM8CH4_CAPTURE_STA|=0X80; //标记成功捕获了一次

TIM8CH4_CAPTURE_VAL=0XFFFF;

}

else

TIM8CH4_CAPTURE_STA++; //捕获高电平后定时器溢出的次数+

最后

以上就是高贵舞蹈为你收集整理的stm32采集脉冲信号_STM32 输入捕获的脉冲宽度及频率计算的全部内容,希望文章能够帮你解决stm32采集脉冲信号_STM32 输入捕获的脉冲宽度及频率计算所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部