86

帖子

0

TA的资源

一粒金砂(初级)

21
 

测量的脉冲长度跨度太大,可以有2个解决办法

1)降低分辩率,即把定时器的预分频系数加大。

2)使用溢出中断,记录溢出次数,然后在捕获中断时,把溢出的次数与读出的捕获数值一并计算。
此帖出自stm32/stm8论坛
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

22
 

使用溢出中断(不能计16路)?

溢出中断只是对TIMx定时器操作,而不是对通道的操作,只能知道是某个定时器溢出中断,而不能知道是某个通道(路)溢出中断?这样就不能同时捕获16路脉冲输入呀
此帖出自stm32/stm8论坛
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

23
 

找到了某个通道(路)溢出中断

                                 我已经 找到了某个通道(路)溢出中断.谢了
此帖出自stm32/stm8论坛
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

24
 

如下

/*******************************************************************************
* Function Name  : TIM_GetFlagStatus
* Description    : Checks whether the specified TIM flag is set or not.
* Input          : - TIMx: where x can be 1 to 8 to select the TIM peripheral.
*                  - TIM_FLAG: specifies the flag to check.
*                    This parameter can be one of the following values:
*                       - TIM_FLAG_Update: TIM update Flag
*                       - TIM_FLAG_CC1: TIM Capture Compare 1 Flag
*                       - TIM_FLAG_CC2: TIM Capture Compare 2 Flag
*                       - TIM_FLAG_CC3: TIM Capture Compare 3 Flag
*                       - TIM_FLAG_CC4: TIM Capture Compare 4 Flag
*                       - TIM_FLAG_COM: TIM Commutation Flag
*                       - TIM_FLAG_Trigger: TIM Trigger Flag
*                       - TIM_FLAG_Break: TIM Break Flag
*                       - TIM_FLAG_CC1OF: TIM Capture Compare 1 overcapture Flag
*                       - TIM_FLAG_CC2OF: TIM Capture Compare 2 overcapture Flag
*                       - TIM_FLAG_CC3OF: TIM Capture Compare 3 overcapture Flag
*                       - TIM_FLAG_CC4OF: TIM Capture Compare 4 overcapture Flag
* Output         : None
* Return         : The new state of TIM_FLAG (SET or RESET).
*******************************************************************************/
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, u16 TIM_FLAG)

  ITStatus bitstatus = RESET;  

  /* Check the parameters */
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  assert_param(IS_TIM_GET_FLAG(TIM_FLAG));
  assert_param(IS_TIM_PERIPH_FLAG(TIMx, TIM_FLAG));
  
  if ((TIMx->SR & TIM_FLAG) != (u16)RESET)
  {
    bitstatus = SET;
  }
  else
  {
    bitstatus = RESET;
  }
  return bitstatus;
}
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

25
 

看样子你还没有搞明白输入捕获的原理

简单地说,计数器在不停地计数,当发生输入捕获指定的事件时,如一个上升沿,当前计数器的数值会被拷贝到这个事件对应通道的输入捕获寄存器中。

比如,计数器按照输入时钟72MHz计数,如果上升沿时捕获到1234(IC0),而再次捕获到下降沿是54321(IC1),则这个信号的宽度是(IC1 - IC0)/72MHz = 737.32us。

如果再次捕获到下降沿时仍然是54321(IC1),但在捕获到上升沿与捕获到下降沿之间发生过一次溢出中断,则信号的宽度应为(IC1 - IC0 + 65536)/72MHz = 1647.54us,因为计数器是16位的,所以溢出一次要增加65536。


一个计数器可以对应定时器的所有4个通道,所以只有计数器的溢出中断,根本不可能有某个通道的溢出中断。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

26
 

谢了

我已经搞懂了,是一个计数器的溢出中断,但是我用了4个自已设定的记溢出标志来区分4个通道的,已经ok
此帖出自stm32/stm8论坛
 
 
 

回复

99

帖子

0

TA的资源

一粒金砂(初级)

27
 

香主,16楼的Doxygen chm文件能给个下载链接吗

我没装Doxygen,你既然有编译好的chm格式,能共享一下吗?

谢谢
此帖出自stm32/stm8论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

28
 

这个文件在STM32固件库v3.1中

                                 请在ST网站下载。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表