系列文章目录
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、时钟系统
时钟系统图:
二、时钟系统配置结构
1.STM32时钟源
可分为五种:
HSE时钟
高速外部时钟信号(HSE)由以下两种时钟源产生:
● HSE外部晶体/陶瓷谐振器
● HSE用户外部时钟
HSI时钟
HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。
PLL
内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟。
LSE时钟
LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供
一个低功耗且精确的时钟源。
LSE晶体通过在备份域控制寄存器(RCC_BDCR)里的LSEON位启动和关闭。
LSI时钟
LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和
自动唤醒单元提供时钟。LSI时钟频率大约40kHz(在30kHz和60kHz之间)。进一步信息请参考数
据手册中有关电气特性部分。
LSI RC可以通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭
2.RCC寄存器
时钟控制寄存器(RCC_CR)
时钟配置寄存器(RCC_CFGR)
时钟中断寄存器 (RCC_CIR)
APB2 外设复位寄存器 (RCC_APB2RSTR)
APB1 外设复位寄存器 (RCC_APB1RSTR)
AHB外设时钟使能寄存器 (RCC_AHBENR)
APB2 外设时钟使能寄存器(RCC_APB2ENR)
APB1 外设时钟使能寄存器(RCC_APB1ENR)
备份域控制寄存器 (RCC_BDCR)
控制/状态寄存器 (RCC_CSR)
typedef struct
{
__IO uint32_t CR; //HSI,HSE,CSS,PLL等的使能和就绪标志位
__IO uint32_t CFGR; //PLL等的时钟源选择,分频系数设定
__IO uint32_t CIR; // 清除/使能 时钟就绪中断
__IO uint32_t APB2RSTR; //APB2线上外设复位寄存器
__IO uint32_t APB1RSTR; //APB1线上外设复位寄存器
__IO uint32_t AHBENR; //DMA、SDIO等时钟使能
__IO uint32_t APB2ENR; //APB2线上外设时钟使能
__IO uint32_t APB1ENR; //APB1线上外设时钟使能
__IO uint32_t BDCR; //备份域控制寄存器
__IO uint32_t CSR; //控制状态寄存器
} RCC_TypeDef;
详细查阅:STM32中文参考手册6.2。
未定义STM32F10X_CL,在system_stm32f10x.c(第0115行)中定义了SYSCLK_FREQ_72MHz,具体如下:
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE /
#define SYSCLK_FREQ_24MHz 24000000
#else
/ #define SYSCLK_FREQ_HSE HSE_VALUE /
/ #define SYSCLK_FREQ_24MHz 24000000 /
/ #define SYSCLK_FREQ_36MHz 36000000 /
/ #define SYSCLK_FREQ_48MHz 48000000 /
/ #define SYSCLK_FREQ_56MHz 56000000 */
#define SYSCLK_FREQ_72MHz 72000000
#endif
STM32F103系列晶振能跑最大值72MHz
三、时钟的作用
单片机中的时钟系统扮演着至关重要的角色,它是单片机正常工作的基础。以下是时钟在单片机中的几个主要作用:
- 同步操作:
- 时钟信号为单片机内部的各种操作提供了一个统一的时序基准。
- 通过时钟信号的上升沿或下降沿,触发器和其他逻辑电路可以被同步地更新状态。
- 时钟信号确保了单片机内部各个模块(如 CPU、RAM、定时器等)之间的协调工作。
- 程序控制:
- 时钟信号决定了单片机内部指令的执行速度。
- 每个时钟周期,单片机可以执行一条指令。
- 通过控制时钟频率,可以调整单片机的运行速度和指令的执行速度。
- 效能提升:
- 较高的时钟频率可以提高单片机的运算速度和处理能力。
- 允许单片机以更快的速度执行指令和处理数据,从而提高系统的整体效能。
- 时序要求:
- 单片机内部的许多操作和外设接口都有严格的时间要求。
- 时钟信号确保这些时序要求得到满足,保证系统的可靠性和稳定性。
- 触发器和存储器的操作:
- 时钟信号触发 D 触发器等存储元件的置位、复位或数据加载功能。
- 存储器的读写操作通常依赖于时钟信号来同步数据的进出。
- 定时器和计数器:
- 时钟信号通常被用来作为定时器和计数器的基础,用于生成定时中断或实现定时功能。
- 外部设备同步:
- 在与外部设备通信时,时钟信号可以帮助同步数据的发送和接收。
- 特别是在同步通信协议中,时钟信号是必不可少的。
- 降低功耗:
- 通过降低时钟频率或在不需要处理任务时让单片机进入低功耗模式,可以有效地减少功耗。
- 晶振的作用:
- 晶振是产生稳定时钟信号的关键部件。
- 它利用晶体的共振频率产生稳定的振荡信号,为单片机提供基准时钟。
- 内部时钟与外部时钟:
- 许多单片机支持使用内部 RC 振荡器或外部晶振来产生时钟信号。
- 内部 RC 振荡器通常不够精确,但在低功耗或成本敏感的应用中很有用。
- 外部晶振提供了更高的频率稳定性和精度,适用于需要精确计时的应用。