¿Cómo se configura correctamente Timer9 (TIM9) en un STM32F405xx para contar pulsos en el flanco ascendente? ¿Existe una configuración especial para el pin del temporizador fuera de este breve ejemplo?
Esto es lo que he hecho hasta ahora y también seguí el BREVE contraejemplo del manual de referencia copiado aquí:
Por ejemplo, para configurar el contador ascendente para que cuente en respuesta a un flanco ascendente en la entrada TI2, use el siguiente procedimiento:
Configure el canal 2 para detectar flancos ascendentes en la entrada TI2 escribiendo CC2S = '01' en el registro TIMx_CCMR1.
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').
- Seleccione la polaridad del flanco ascendente escribiendo CC2P='0' y CC2NP='0' en el registro TIMx_CCER.
- Configure el temporizador en modo de reloj externo 1 escribiendo SMS='111' en el registro TIMx_SMCR.
- Seleccione TI2 como fuente de entrada de disparo escribiendo TS='110' en el registro TIMx_SMCR.
- Habilite el contador escribiendo CEN='1' en el registro TIMx_CR1.
Creo que he hecho lo anterior correctamente, pero leer el registro devuelve 0 siempre. ¿Hay alguna configuración adicional dentro de un registro diferente para conectar el temporizador? Estuve leyendo alternate functions
pero no pude encontrar nada específico sobre Timers and Pins.
Estoy siguiendo vagamente esto como una referencia de código: https://www.ghielectronics.com/docs/108/register-access
Hoja de datos del chip: http://www.st.com/web/en/resource/technical/document/datasheet/DM00037051.pdf
Manual de referencia de la familia de chips: http://www.st.com/web/en/resource/technical/document/reference_manual/DM00031020.pdf
Lo primero que siempre compruebo es asegurarme de que todos los relojes que necesito estén encendidos. Deberá asegurarse de que los relojes para APB2 (TIM9) y AHB1 (GPIO) estén encendidos. Además, las funciones del temporizador son funciones alternativas, por lo que deberá configurar los GPIOx_MODER
bits para el puerto y el pin apropiados que está utilizando, así como los GPIOx_AFRy
bits apropiados.
La hoja de datos y el manual de referencia deben tener toda la información que necesita, a veces solo se necesita algo de esfuerzo para encontrar lo que está buscando.
TIMx_CNT
registro a 0? Intenté usar RCC_APB2RSTR
para restablecer, pero creo que eso lo restablece todo a los valores predeterminados.UG
el bit en 1 TIMx_EGR
parece restablecer el contador y no afectar el resto de la configuración ... hasta ahora
A.Mac
gismofx
RCC_APB2ENR
en el manual de referencia, pero no puedo encontrar la dirección en la hoja de datos.gismofx
RCC
en el bus AHB1 a partir de 0x40023800 y el manual de referencia muestra un desplazamiento de 0x44 paraRCC_APB2ENR
. el bit 16 es TIM9EN. Configuré ese bit y sigo obteniendo cero.A.Mac
A.Mac
gismofx
A.Mac