STM32五钟源详解:HSI、HSE、LSI、LSE与PLL时钟配置
需积分: 19 51 浏览量
更新于2024-09-12
收藏 119KB DOC 举报
STM32时钟系统是该微控制器系列的核心组成部分,它确保了整个系统的稳定运行和性能优化。STM32的时钟架构由五个主要时钟源构成:HSI(高速内部振荡器)、HSE(高速外部时钟源)、LSI(低速内部振荡器)、LSE(低速外部振荡器)以及PLL(锁相环路倍频器)。以下是对这些时钟源的详细解释:
1. HSI (High-Speed Internal Oscillator): 高速内部振荡器是基于RC振荡器设计,提供一个基本的8MHz频率,用于在没有外部时钟源的情况下启动系统。
2. HSE (High-Speed External Oscillator): 这是STM32的一个重要时钟源,可以连接石英/陶瓷谐振器或外部时钟,频率范围从4MHz到16MHz。HSE通常用于更精确的时间同步和较高的系统性能需求。
3. LSI (Low-Speed Internal Oscillator): LSI也是一个RC振荡器,频率较低,仅为40kHz,主要用于低功耗模式下维持基本系统功能。
4. LSE (Low-Speed External Oscillator): LSE是专为低功耗设计的,连接一个32.768kHz的石英晶体,常用于实时时钟应用。
5. PLL (Phase-Locked Loop): PLL是一种用于倍频的电路,可以将输入时钟源(如HSI/2、HSE或HSE/2)放大到2到16倍,但最大输出频率不能超过72MHz。PLL提供了灵活的时钟配置选项,可根据系统需求调整时钟速度。
在使用STM32时,如果没有外接晶振,内部振荡器的接法需特别注意。不同型号的芯片可能有不同的接线规则,比如100脚或144脚产品需将OSC_IN接地,OSC_OUT悬空;而对于小于100脚的芯片,可以采用两种方式:一是通过10K电阻接地以改善EMC性能,二是将OSC_IN和OSC_OUT映射到PD0和PD1,并配置为推挽输出,这样可以降低功耗且减少外部电阻。
配置HSE时钟的过程包括以下步骤:
- 初始化RCC寄存器为默认值RCC_DeInit
- 打开HSE并配置HSERCC_HSEConfig为ON
- 等待HSE稳定HSEStartUpStatus确认HSE已经启动
- 设置系统时钟分频器(如AHB和APB时钟)
- 调整高级定时器(PCLK2)和低级定时器(PCLK1)的时钟配置
- 配置PLL,包括选择输入源、倍频系数和使能PLL
- 检查PLL是否准备好,等待RCC_FLAG_PLLRDY标志变为SET
- 设置系统时钟源RCC_SYSCLKConfig
- 确认PLL是否成为系统时钟源
- 启用所需的外设时钟
理解并正确管理STM32的时钟系统对于优化处理器性能、提高代码效率和实现精确时间控制至关重要。通过合理配置这些时钟,开发人员可以确保STM32在各种应用环境中都能达到预期的运行效果。
2022-09-19 上传
2022-09-23 上传
2022-07-14 上传
点击了解资源详情
2023-06-11 上传
2013-05-10 上传
2011-12-09 上传
DML1968
- 粉丝: 7
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析