[STM32F1] 手动配置时钟的方法

[复制链接]
 楼主| 米多0036 发表于 2024-12-7 12:42 | 显示全部楼层 |阅读模式
对于有特殊需求的项目,也可以直接通过寄存器手动配置时钟。以下是基本步骤:

启用时钟源(如HSE或HSI):

c
复制代码
RCC->CR |= RCC_CR_HSEON; // 启用HSE
while (!(RCC->CR & RCC_CR_HSERDY)); // 等待HSE稳定
配置PLL并启用:

c
复制代码
RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE | (9 << RCC_PLLCFGR_PLLMUL_Pos); // 倍频9倍
RCC->CR |= RCC_CR_PLLON; // 启用PLL
while (!(RCC->CR & RCC_CR_PLLRDY)); // 等待PLL稳定
切换系统时钟到PLL:

c
复制代码
RCC->CFGR |= RCC_CFGR_SW_PLL; // 选择PLL为系统时钟
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL); // 等待切换完成
配置分频器:

c
复制代码
RCC->CFGR |= RCC_CFGR_HPRE_DIV1 | RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_PPRE2_DIV1; // AHB和APB分频

您需要登录后才可以回帖 登录 | 注册

本版积分规则

136

主题

1429

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部