STM32学习 12 理解STM32的时钟树
Posted 编程圈子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32学习 12 理解STM32的时钟树相关的知识,希望对你有一定的参考价值。
STM32学习 12 理解STM32的时钟树
一、STM32的时钟源
STM32 有5个时钟源:
- HSI:高速内部时钟,RC振荡器,频率为8MHz。
- HSE:高速外部时钟,可接外部晶振、时钟源,频率范围为4MHz~16MHz。
- LSI:低速内部时钟,RC振荡器,频率为40kHz。
- LSE:低速外部时钟,接频率为32.768kHz的石英晶体。
- PLL:锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2,倍频可选择2~16倍,但是其输出频率最大不得超过72MHz。
二、内部RC振荡器与外部晶振的选择
STM32可以选择内部时钟,也可以选择外部时钟,如果使用内部时钟,要注意:
- 对于100脚或144脚的产品,OSC_IN接地、OSC_OUT悬空。
- 对于少于100脚的产品,有两种 接法:
-
- OSC_IN和OSC_OUT分别通过10千欧电阻接地,可提高EMC性能。
-
- 分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出、输出值设置为0.
- 内部8MHz的时钟误差在1%左右,比外部精度通常低10倍以上。
三、STM32使用时钟的流程
如使用HSE时钟、使用STM32的固件库函数。
- RCC初始化
- 调用函数
RCC_HSEConfig(RCC_HSE_ON);
打开HSE - 等待时钟准备就绪
HSEStartUpStatus=RCC_WaitForHSEStartUp();
- 调用函数
RCC_HCLKCOnfig
设置AHB
时钟 - 调用函数
RCC_PCLK2Config
调用高速AHB时钟 - 调用函数
RCC_PCLK1Config
调用低速AHB时钟 - 调用函数
RCC_PLLConfig
设置PLL - 调用函数
RCC_PLLCmd(ENABLE);
打开PLL - 等待PLL准备就绪
- 调用函数
RCC_SYSCLKConfig
设置系统时钟 - 判断PLL是否是系统时钟
- 调用函数
RCC_APB2PeriphClockCmd();
或RCC_APB1PeriphClockCmd();
打开要使用的外设时钟。
以上是关于STM32学习 12 理解STM32的时钟树的主要内容,如果未能解决你的问题,请参考以下文章