Descripción de la configuración de la frecuencia del reloj del temporizador STM32F407 TIM3
árbol del reloj
Primero es un reloj externo, luego se convierte en 1 MHz después de /M, 366 MHz después de xN y 168 MHz después de /P. En este momento, es la frecuencia de reloj de SYSCLK. Después de /1, se convierte en la frecuencia de reloj de AHB HCLK= SYSCLK, y después de /4, se convierte en La frecuencia de reloj de APB1 es de 42 MHz, y después de /2, la frecuencia de reloj de APB2 se convierte en 84 MHz. TIM3 está montado en APB1, pero debido a la división de frecuencia de /4, sigue el árbol de reloj if(APB1 presc=1){x1}else{x2 }, el reloj TIM3 debe multiplicarse por X2 para convertirse en 42x2=84MHz.
Ajustes relacionados
La MCU ejecuta primero el archivo de inicio. En el archivo de inicio, se ejecutará una función de inicialización del reloj antes de la función principal. La SystemInit
SystemInit
función es la siguiente. Los coeficientes de división de frecuencia relacionados con el reloj PLL_M, PLL_N y PLL_P se definen en el archivo
. La frecuencia del reloj externo se define en el La función intermedia incluye la configuración de la división de frecuencia, como se muestra a continuación, el reloj AHB está configurado en SYSCLK/1, APB1 es SYSCLK/4, APB2 es SYSCLK/2, TIM3 está montado en APB1, pero el reloj APB1 se divide por 1/4 sobre la base de SYSCLK, que es consistente con la multiplicación de frecuencia del reloj del temporizador cuando la división de frecuencia es no 1 en el árbol de reloj, por lo que la frecuencia de reloj final de TIM3 es (SYSCLK /4)*2.system_stm32F4xx.c
stm32f4xx.h
system_stm32f4xx.c
SystemInit