Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo hacer que el reloj PLL de salida STM32?

¿Cómo hacer que el reloj PLL de salida STM32?

Para configurar el reloj, primero puede determinar qué periféricos deben usarse en el programa y luego abrir el reloj periférico correspondiente de acuerdo con el árbol del reloj. Aquí, daré una subrutina de configuración general del reloj:

void rcc_configuration(void)

{

ErrorStatus HSEStartUpStatus;//definir la variable HSEStartUpStatus

RCC_ DeInit(); //reconfiguración de RCC

RCC_HSEConfig (RCC_HSE_ON); //Enciende el reloj HSE

HSEStartUpStatus = RCC_WaitForHSEStartUp(); // Leer el estado de RCC

if ( HSEStartUpStatus == SUCCESS) //El reloj HSE es estable

{

FLASH_PrefetchBufferCmd (FLASH_PrefetchBuffer_Enable); //Habilitar el área del búfer de captación previa de flash;

FLASH_ SetLatency (FLASH_Latency_2); //Necesitas esperar 2 ciclos cuando la memoria flash funciona a 72MHz;

RCC_PLLConfig (RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //Utiliza 9 veces el reloj externo como Reloj PLL;

RCC_PLLCmd(ENABLE); //Habilitar PLL;

while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //Esperar a que el reloj PLL se estabilice;

{

}

RCC_ SYSCLKConfig (RCC_SYSCLKSource_PLLCLK); //Cambia el reloj del sistema al reloj PLL;

while (RCC_GetSYSCLKSource() != 0x08)/ /Determine si el PLL es el reloj del sistema

{

}

}

La siguiente es la configuración del reloj en el bus:

RCC_HCLK_Div1; //el reloj maestro es de 72MHz

RCC_ PCLK2Config (RCC_HCLK_Div1); //el reloj APB2 es de 72MHz

RCC_PCLK1Config (RCC_HCLK_Div2); ); //el reloj APB1 es 36MHz

RCC_ADCCLKConfig (RCC_PCLK2_ Div4); //el reloj ADC es 18MHz

RCC_ADCCLKConfig (RCC_PCLK2_ Div4); //el reloj ADC es 18MHz

;