STM32F407时钟树结构

      STM32F407基于Cortex M4内核架构,具备完善的时钟树结构。了解时钟树的结构有助于程序的编写和优化。

      下列配置图来自软件STM32CubeMX,从配置图可以看出STM32F407所有时钟源,包括外部输入HSE和LSE,以及内部RC时钟HSI和LSI。

 

      对于高速时钟,采用外部8MHz晶振作为时钟输入HSE;经过PLL的倍频,得到系统时钟SYSCLK 168MHz;SYSCLK经过预分频得到HCLK,HCLK用于驱动AHB总线、内存、DMA、内核FCLK以及嘀嗒时钟Systick;APB1和APB2两路总线时钟也来自HCLK,分别对应PCLK1和PCLK2,同时要注意的是,挂在这两个总线上定时器的时钟是总线时钟的2倍。

      对于低速时钟,主要用于需要驱动RTC时钟或者IWDG看门狗。

      总结,时钟作为嵌入式系统的心脏,是必不可少的部分。正确选择时钟源、配置时钟参数,是系统正常运行,外设正常交互的前提。

转载于:https://www.cnblogs.com/xincz/p/7835550.html

### STM32F407时钟树结构 STM32F407时钟体系非常复杂,其时钟树也相当庞大。为了便于理解和配置,采用图形化展示能够有效帮助掌握这一基础架构[^1]。 #### 主要时钟源介绍 在STM32F4中存在五个主要的时钟源: - **HSI (High Speed Internal)**:内部高速RC振荡器,默认频率为16 MHz。 - **HSE (High Speed External)**:外部高速晶体/陶瓷谐振器输入,范围通常在4至26 MHz之间。 - **LSI (Low Speed Internal)**:内部低速RC振荡器,默认频率约为32 kHz。 - **LSE (Low Speed External)**:外部低速晶体输入,典型值为32.768 kHz用于实时时钟(RTC)功能。 - **PLL (Phase Locked Loop)**:锁相环倍频器,可进一步细分为主PLL和专用PLL两种模式,支持多种不同的输出频率设置[^2]。 这些时钟源按照速度分类可以区分为高速与时钟两组;按来源则区分成内外部两类。具体而言,HSI、HSE以及PLL属于高速类别并作为系统运行的主要依据;而LSI与LSE则是针对特定应用场景下的辅助选项,比如RTC计时等需求。 #### 配置方法概述 对于上述提到的各种时钟资源,在实际应用过程中可以通过修改相应的寄存器来进行灵活调配。例如启用或禁用某个具体的时钟源、调整预分频系数以改变最终供给给各个外设模块使用的实际工作频率等等操作均需依赖于对相应控制位的操作实现。下面给出一段简单的初始化代码示例来说明如何选择使用HSE作为系统的主时钟源之一: ```c RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; // 初始化 HSE 并等待稳定 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; HAL_RCC_OscConfig(&RCC_OscInitStruct); // 设置 AHB, APB1 和 APB2 的时钟分频因子 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE; // 使用 HSE 作为系统时钟源 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0)!= HAL_OK){ Error_Handler(); } ``` 这段C语言程序片段展示了怎样通过调用ST官方库函数完成对外围设备控制器(Power Control Unit, PCU)内核及时钟管理单元(RCC)的相关参数设定过程,从而达到切换当前活动状态中的核心处理器所依赖的基础脉冲信号的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值