STM32F1系列的时钟系统

在这里插入图片描述
图1 来自STM32中文参考手册

在这里插入图片描述
图二 来自正点原子资料

STM32的5个时钟源

HSI:高速内部时钟,RC振荡器,频率8MHz,精度不高。
HSE:高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz,一般我取8M
LSI:低速内部时钟,RC振荡器,频率40kHz,低功耗时钟,至WDG独立看门狗。
LSE:低速外部时钟,接频率为32.768kHz的石英晶体或陶瓷谐振器,RTC实时时钟。
PLL:锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。 倍频可选择为2~16倍,其输出频率最大为72MHz

系统时钟SYSCLK来源:

在这里插入图片描述
HSI高速内部时钟
HSE高速外部时钟
PLL锁相环

时钟输出

在这里插入图片描述
时钟信号输出到MCO的PA8脚
PLL 二分频
HSI 高速内部时钟
HSE 高速外部时钟
SYSCLK 系统时钟

几种非常重要的时钟:

SYSCLK(系统时钟)
AHB总线时钟
APB1总线时钟(低速): 速度最高36MHz
APB2总线时钟(高速): 速度最高72MHz
PLL时钟

注:这几种时钟均可由HSE外部高速时钟提供

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于STM32F1系列微控制器,配置系统时钟可以按照以下步骤进行: 1. 首先,需要打开RCC(Reset and Clock Control)模块的时钟使能。 ```c RCC->CR |= RCC_CR_HSEON; // 打开外部高速时钟(如果使用外部晶体) RCC->CR |= RCC_CR_HSION; // 打开内部高速时钟 ``` 2. 等待时钟稳定。根据需要选择使用外部晶体还是内部高速时钟,等待时钟稳定的时间不同。例如,如果使用外部晶体,则等待HSE稳定: ```c while (!(RCC->CR & RCC_CR_HSERDY)); // 等待HSE稳定 ``` 3. 配置时钟分频器。根据需要配置系统时钟频率和总线时钟频率。 ```c // 选择系统时钟源和分频系数 RCC->CFGR |= RCC_CFGR_SW_0; // 使用SYSCLK = HSI RCC->CFGR |= RCC_CFGR_HPRE_DIV1; // AHB时钟不分频 RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; // APB1时钟分频为2(可根据需要调整) RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; // APB2时钟不分频 // 更新时钟设置 RCC->CR |= RCC_CR_PLLON; // 打开PLL(可选,如果需要使用PLL时钟源) while (!(RCC->CR & RCC_CR_PLLRDY)); // 等待PLL稳定 // 选择PLL作为系统时钟源 RCC->CFGR &= ~RCC_CFGR_SW; RCC->CFGR |= RCC_CFGR_SW_PLL; ``` 4. 等待系统时钟稳定。 ```c while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL); // 等待PLL作为系统时钟源 ``` 这些是配置STM32F1系列微控制器系统时钟的基本步骤。你可以根据具体的需求进行修改和扩展。希望能对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值