Configurando un contador en STM32F405xx

0

¿Cómo se configura correctamente el Timer9 (TIM9) en un STM32F405xx para contar los pulsos en el flanco ascendente? ¿Hay una configuración especial para el pin al temporizador fuera de este breve ejemplo?

Esto es lo que he hecho hasta ahora y también he seguido el ejemplo de contador BREVE del manual de referencia que se copió aquí:

  

Por ejemplo, para configurar el contador ascendente para que cuente en respuesta a una   borde ascendente en la entrada de TI2, utilice el siguiente procedimiento:

     
  1. Configure el canal 2 para detectar bordes ascendentes en la entrada de TI2 escribiendo CC2S = '01' en el registro TIMx_CCMR1.

  2.   
  3. Configure la duración del filtro de entrada escribiendo los bits IC2F [3: 0] en el registro TIMx_CCMR1 (si no se necesita ningún filtro, mantenga IC2F = ’0000’).

  4.   
  5. Seleccione la polaridad del flanco ascendente escribiendo CC2P = ’0’ y CC2NP = ’0’ en el registro TIMx_CCER.
  6.   
  7. Configure el temporizador en el modo de reloj externo 1 escribiendo SMS = '111' en el registro TIMx_SMCR.
  8.   
  9. Seleccione TI2 como la fuente de entrada del activador escribiendo TS = ’102 en el registro TIMx_SMCR.
  10.   
  11. Habilite el contador escribiendo CEN = '1' en el registro TIMx_CR1.
  12.   

Creo que he hecho lo anterior correctamente, pero leer el registro siempre devuelve 0. ¿Hay alguna configuración adicional dentro de un registro diferente para conectar el temporizador? Estaba leyendo sobre alternate functions , pero no pude encontrar nada específico de los temporizadores y pines.

Lo estoy siguiendo libremente como referencia de código: enlace

Hoja de datos del chip: enlace

Manual de referencia de la familia de chips: enlace

    
pregunta GisMofx

1 respuesta

2

Lo primero que siempre reviso es asegurarme de que todos los relojes que necesito estén encendidos. Deberá asegurarse de que los relojes APB2 (TIM9) y AHB1 (GPIO) estén encendidos. Además, las funciones del temporizador son funciones alternativas, por lo que deberá configurar los bits GPIOx_MODER para el puerto y el pin apropiados que está usando, así como los bits apropiados GPIOx_AFRy .

La hoja de datos y el manual de referencia deben tener toda la información que necesita, a veces solo se necesita hacer algo para encontrar lo que está buscando.

    
respondido por el A.Mac

Lea otras preguntas en las etiquetas