[置顶] TIM_GetCounter与TIM_GetCapture1的区别


/**
  * @brief  Gets the TIMx Input Capture 1 value.
  * @param  TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral.
  * @retval Capture Compare 1 Register value.
  */
uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx)
{
  /* Check the parameters */
  assert_param(IS_TIM_LIST8_PERIPH(TIMx));
  /* Get the Capture 1 Register value */
  return TIMx->CCR1;
}

/**
  * @brief  Gets the TIMx Counter value.
  * @param  TIMx: where x can be 1 to 17 to select the TIM peripheral.
  * @retval Counter Register value.
  */
uint16_t TIM_GetCounter(TIM_TypeDef* TIMx)
{
  /* Check the parameters */
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  /* Get the Counter Register value */
  return TIMx->CNT;
}


当捕获成功时,TIM_GetCapture1()和TIM_GetCounter()得到的值一样吗?
TIM_GetCapture1对应寄存器CRR1,TIM_GetCounter对应寄存器CNT


答:

看你处理的速度了,
正常来说TIM_GetCapture1才是最准确的.完全硬件级别的保存.

捕获/比较寄存器 1: TIMx_CCR1,该寄存器用来存储捕获发生时, TIMx_CNT的值;

我们从 TIMx_CCR1 就可以读出通道 1 捕获发生时刻的 TIMx_CNT 值









posted @ 2017-07-11 14:33  隔壁王叔叔a  阅读(2623)  评论(0编辑  收藏  举报