void SystemClock_Config(void)
{
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON); //INPUT HSE = 24M
ErrorStatus HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(ENABLE); //M0 defined
FLASH_SetLatency(FLASH_Latency_1); //M0 defined
RCC_PREDIV1Config(RCC_PREDIV1_Div1);
RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_2); //PLL CLK = HSE *RCC_PLLSource_PREDIV1*2 = 48M
RCC_PLLCmd(ENABLE); //enable PLL CLK
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //WAIT PLL CLK ready
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //SELECT SYSCLK = PLLCLK =48M
// * - 0x00: HSI used as system clock
// *

本文详细介绍了STM32微控制器如何配置外部晶振作为系统时钟源,包括晶振的选择、时钟树设置步骤和相关寄存器配置,帮助读者理解STM32的时钟系统并实现高效稳定的系统运行。
4872

被折叠的 条评论
为什么被折叠?



