如果我们使用HSE 或者 HSE 经过 PLL 倍频之后的时钟作为系统时钟 SYSCLK,当 HSE 故障时候,不仅 HSE 会被关闭, PLL 也会被关闭,此时高速的内部时钟时钟信号HSI 会作为备用的系统时钟,直到 HSE 恢复正常, HSI=16M。 2. ②锁相环 PLL: PLL 的主要作用是对时钟进行倍频,然后把时钟输出到各个功能部件。 PLL 有...
void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource);//设置系统时钟(SYSCLK)源 // RCC_SYSCLKSource_HSI,RCC_SYSCLKSource_HSE,RCC_SYSCLKSource_PLLCLK uint8_t RCC_GetSYSCLKSource(void);// 返回用作系统时钟的时钟源 //返回值:0x00 HSI作为系统时钟,0x04 HSE作为系统时钟,0x08 PLL作为系统时钟 void...
时钟SYSCLKRCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);// 6.读取时钟切换状态以确保PLLCLK被选中为系统时钟(SYSCLK)while(RCC_GetSYSCLKSource()!=0x08){}}else{// 启动HSE失败,可能是HSE不足,或者外部晶振不稳定// 如果HSE启动时钟,单片机会自动把HSE切换到HSI// HSI是单片机内部的高速时钟源,HSI的频率为...
void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource);//设置系统时钟(SYSCLK)源 // RCC_SYSCLKSource_HSI,RCC_SYSCLKSource_HSE,RCC_SYSCLKSource_PLLCLK uint8_t RCC_GetSYSCLKSource(void);//返回用作系统时钟的时钟源 //返回值:0x00 HSI作为系统时钟,0x04 HSE作为系统时钟,0x08 PLL作为系统时钟 void ...
设置系统时钟:RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 判断PLL是否是系统时钟:while(RCC_GetSYSCLKSource() != 0x08); 1、使用库函数进行时钟系统初始化配置 void RCC_config()//如果外部晶振为8M,PLLCLK=SYSCLK=72M,HCLK=72M,//P2CLK=72M,P1CLK=36M,ADCCLK=36M,USBCLK=48M,TIMCLK=72M ...
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //配置系统时钟 while(RCC_GetSYSCLKSource() !=0x80) { }//检查是否将HSE 9倍频后作为系统时钟 } } 设置时钟流程: 1.将RCC寄存器重新设置为默认值 RCC_DeInit 2.打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON); 3.等待外部高速时钟晶振工作 HSEStartUp...
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;//AHB 1分频 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;//APB1 1分频 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;//APB2 1分频 ...
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //配置系统时钟 while(RCC_GetSYSCLKSource() !=0x80) //检查是否将HSE 9倍频后作为系统时钟 {} } } 设置时钟流程: 1.将RCC寄存器重新设置为默认值 RCC_DeInit 2.打开外部高速时钟晶振 HSE RCC_HSEConfig(RCC_HSE_ON); ...
void RCC_SYSCLKConfig(uint32 t RCC_SYSCLKSource) 参数:uint32_t RCC_SYSCLKSource, 时钟源, 定义在 stm32f4xx_rcc.h 文件中。 #define RCC_SYSCLKSource_HSI ((uint32_t)0x00000000) #define RCC_SYSCLKSource_HSE ((uint32_t)0x00000001) #define RCC_SYSCLKSource_PLLCLK ((uint32_t)0x00000002...
设置系统时钟: RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 判断PLL 是否是系统时钟: while(RCC_GetSYSCLKSource() != 0x08); 1、使用库函数进行时钟系统初始化配置 void RCC_config()//如果外部晶振为8M,PLLCLK=SYSCLK=72M,HCLK=72M,//P2CLK=72M,P1CLK=36M,ADCCLK=36M,USBCLK=48M,TIMCLK=72M ...