RCC配置
RCC 配置时钟
1、时钟树
- 为降低功耗,一般会关闭时钟。所以在启用外设前需要依照时钟树依次使能对应的时钟
STM32时钟树
2、实际操作
LL库
- (1)在对应头文件中定义该函数
void HSE_SetSysClock(void);//用于配置时钟的函数
- (2)将对应的声明写入源文件:
void HSE_SetSysClock(void){
//将RCC转换为复位状态
__IO uint32_t StartUpCounter = 0, HSEStartUpStatus = 0;
RCC_DeInit();
//使能RCC
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();//等待HSE启动稳定
//若启动稳定就继续执行
if(HSEStartUpStatus == SUCCESS){
//使能Flash预存的缓冲区
FLASH_PrefetchBufferCmd(ENABLE);
FLASH_SetLatency(FLASH_Latency_2);//设置SysClk与Flash访问时间的比例
RCC_HCLKConfig(RCC_SYSCLK_Div1);//APB1设置为1分频
RCC_HCLKConfig(RCC_SYSCLK_Div2);//APB2设置为1分频
RCC_PLLConfig(RCC_PLLSource_HSE,4, 216, 6, 9);//设置各种频率
RCC_PLLCmd(ENABLE);//开启PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);//等待PLL稳定
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//在PLL稳定后将PLL时钟切换为系统时钟
while(RCC_GetSYSCLKSource() != 0x08);//读取切换时钟状态位
}else{
//若未正常启动将进入此处
}
}
HAL库
- 按照如下方式配置:
![图片]()



浙公网安备 33010602011771号