STM32: reinicio del codificador del temporizador

Configuré mi TIM4 como entrada de codificador y todo funciona bien cuando ejecuto TIM_GetCounter(TIM4) Pero me gustaría volver a poner el valor del temporizador en 0 (¿reiniciar?) cuando presiono un botón con una interrupción) y no 't encontrar una función de reinicio. Estoy ejecutando un STM32F103 con solo StdPeriph Lib.

Respuestas (1)

Debe escribir uno para usted basado en la función 'obtener':

uint32_t TIM_GetCounter(TIM_TypeDef* TIMx)
{
  /* Check the parameters */
  assert_param(IS_TIM_ALL_PERIPH(TIMx));

  /* Get the Counter Register value */
  return TIMx->CNT;
}

Así que TIM_ResetCounterdebería verse así:

void TIM_ResetCounter(TIM_TypeDef* TIMx)
{
  /* Check the parameters */
  assert_param(IS_TIM_ALL_PERIPH(TIMx));

  /* Reset the Counter Register value */
  TIMx->CNT = 0;
}

Si revisa el manual de referencia , puede ver que el registro del valor del contador tiene acceso de lectura y escritura. Así que puedes ponerlo a 0.

ingrese la descripción de la imagen aquí

También puede crear una función de conjunto general con un parámetro de "valor" adicional.