¿Cómo hacer que el reloj PLL de salida STM32?
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; p>
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
;