Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué es el reloj interno stcf11f04?

¿Qué es el reloj interno stcf11f04?

Primero comente SystemInit() en el programa principal;

Luego use la siguiente función como función de inicialización del reloj del sistema

void RCC_Configuration(void)

{

RCC_DeInit();//Restablecer los registros RCC periféricos al valor predeterminado

RCC_HSICmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET) ;//esperar a que HSI se habilite correctamente

//FLASH_ PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

//FLASH_SetLatency(FLASH_Latency_2);

RCC_HCLKConfig(RCC_SYSCLK_Div1

RCC_PCLK1Config(RCC_HCLK_Div2);

RCC_PCLK2Config(RCC_HCLK_Div1

//Establece la fuente de reloj PLL y el factor de multiplicación de frecuencia

<); p>RCC_PLLConfig (RCC_ PLLSource_HSI_Div2, RCC_PLLMul_2); // Habilita o deshabilita el PLL, este parámetro puede ser ENABLE o DISABLE

RCC_PLLCmd(ENABLE); no se puede deshabilitar

//Espere a que el indicador RCC especificado se establezca correctamente.

El bit de bandera RCC se establece correctamente y espera a que la inicialización del PLL sea exitosa

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET

//Configure el reloj del sistema (SYSCLK); y configure el PLL como fuente del reloj del sistema

RCC_ SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // Seleccione el reloj del sistema requerido

// Espere a que el PLL se utilice correctamente como fuente del reloj. del reloj del sistema

// 0x00:

//0x00: Usar HSI como reloj del sistema

//0x04: Usar HSE como reloj del sistema

//0x08: use PLL como reloj del sistema

while(RCC_GetSYSCLKSource() != 0x08); //debe corresponder al reloj del sistema seleccionado, RCC_SYSCLKSource_PLL

}

void: RCC_SYSCLKSource() !

void RCC_Configuration(void)

{

RCC_DeInit() //Restablecer el periférico RCC se registra con el valor predeterminado

RCC_HSICmd (ENABLE); //Habilitar HSI

while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); //Espera a que HSI se habilite correctamente

p>

//FLASH_ PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

//FLASH_SetLatency(FLASH_Latency_2);

RCC_HCLKConfig(RCC_SYSCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2) ;

RCC_PCLK2Config(RCC_HCLK_Div1);

//Establecer la fuente del reloj PLL y el factor de multiplicación

RCC_PLLConfig(RCC_ PLLSource_HSI_Div2, RCC_PLLMul_2); el PLL, este parámetro puede ser ACTIVADO o DESACTIVADO

RCC_PLLCmd(ENABLE); //Si el PLL se usa para el reloj del sistema, no se puede deshabilitar

/Esperando lo especificado El bit de bandera RCC se establecerá correctamente. RCC_FlagStatus(RCC_FLAG_PLLRDY)==RESET);

/Configure el reloj del sistema (SYSCLK) y configure el PLL como fuente del reloj del sistema

RCC_SYSCLKConfigure(ENABLE); se utiliza para el reloj del sistema, no se puede desactivar

Esperando que el indicador RCC especificado se establezca correctamente.

SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //Seleccione el reloj del sistema deseado

// Espere a que el PLL se utilice correctamente como fuente de reloj para el reloj del sistema

/ / 0x00: HSI como el reloj del sistema

/ / 0x04: HSE como reloj del sistema

/ // 0x08: PLL como reloj del sistema

while(RCC_GetSYSCLKSource() != if Si se selecciona el reloj interno como reloj del sistema, su frecuencia multiplicadora no podrá alcanzar los 72 Mhz y solo podrá alcanzar los 8 Mhz/2*16 = 64 Mhz como máximo.