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库

  • 按照如下方式配置:
    图片
posted @ 2025-08-25 13:11  奶龙大王  阅读(28)  评论(0)    收藏  举报