#include "stm32f10x.h" // Device header
//STM32使用库函数时钟配置
//使用外部8MHZ晶振,配置SYSCLK = 72MHZ,HCLK = 72MZH,PCLK2 = 72MHZ PCLK1 = 36MHZ
void RCC_Configuration(void)
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit(); //复位RCC寄存器
RCC_HSEConfig(RCC_HSE_ON); //开启外部时钟
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //获取HSE OSC就绪状态
if(HSEStartUpStatus == SUCCESS)
{
RCC_HCLKConfig(RCC_SYSCLK_Div1); //一分频,AHB CLOCK HCLK = SYSCLK = 72MHZ
RCC_PCLK2Config(RCC_HCLK_Div1); //一分频,APB2 CLOCK PCLK2 = SYSCLK = 72MHZ
RCC_PCLK1Config(RCC_HCLK_Div2); //二分频,APB1 CLOCK PCLK1 = SYSCLK / 2 = 36MHZ
//设置Flash延时时钟周期和预取值缓存模式
FLASH_SetLatency(FLASH_ACR_LATENCY_2); //设置2个延时周期
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //使能预取值功能
//设置PLL时钟源 = HSE 时钟,倍频系数 = HSE * 9
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
RCC_PLLCmd(ENABLE); //使能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //等待PLL准备就绪
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置SYSCLK时钟源为PLLCLK
while(RCC_GetSYSCLKSource() != 0x08); // 0x00: HSI used as system clock 等待SYSCLK = PLLCLK设置成功
// 0x04: HSE used as system clock
//0x08: PLL used as system clock
}
}
STM32 时钟配置,使用库函数
于 2024-03-05 22:48:57 首次发布