打印
[STM32F1]

手动配置时钟的方法

[复制链接]
209|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米多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分频

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

128

主题

1392

帖子

0

粉丝