1、对于广大初次接触STM32的读者朋友(甚至是初次接触ARM器件的读者朋友)来说,在熟悉了开发环境的使用之后,往往“栽倒”在同一个问题上。这问题有个关键字叫:时钟树。 众所周知,微控制器(处理器)的运行必须要依赖周期性的时钟脉冲来驱动往往由一个外部晶体振荡器提供时钟输入为始,最终转换为多个外部设备的周期性...
在前面章节的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,将STM32F1系统时钟设置为72MHz,然后进入主函数。那么这个系统时钟大小如何得来,其他外设的时钟又如何划分,可以通过一张时钟树图找到答案,只要理解好时钟树,STM32一切时钟的来龙去脉就会非常清楚。下面就来了解下时钟树,如下图所示。
//STM32F4 //1.外设时钟使能和失能 HAL库使能某个外设时钟的方法,如: _HAL_RCC_GPIOA_CLK_ENABLE();_/使能GPIOA时钟 HAL_RCC_GPIOA_CLK_DISABLE();/禁止GPIOA时钟 //2.HAL_RCC-OscConfig()函数 HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef*RCC_OscInitStruct) typedef struct { uint32_t ...
Step4.配置时钟树,使用外部 8M 晶振作为 PLL 输入,并使用 PLL 输出作为系统时钟。根据下图配置,得到系统时钟为 168MHz。 晶振STM32pll 声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联...
精选优质文档倾情为你奉上对于广大初次接触STM32的读者朋友甚至是初次接触ARM器件的读者朋友来说,在熟悉了开发环境的使用之后,往往栽倒在同一个问题上,这问题有个关键字叫,时钟树,众所周知,微控制器处理器的运行必须要依赖周期性的时钟脉冲来
而STM32微控制器的时钟树则是可配置的,其时钟输入源与最终达到外设处的时钟速率不再有固定的关系,本文将来详细解析STM32微控制器的时钟树。 图1是STM32微控制器的时钟树,表1是图中各个标号所表示的部件。 标号图1标号释义 1内部低速振荡器(LSI,40Khz) 2外部低速振荡器(LSE,32.768Khz) 3外部高速振荡器(HSE,...
图1 STM32的时钟树 在认识这颗时钟树之前,首先要明确“主干”和最终的“分支”。假设使用外部8MHz晶振作为STM32的时钟输入源(这也是最常见的一种做法),则这个8MHz便是“主干”,而“分支”很显然是最终的外部设备比如通用输入输出设备(GPIO)。这样可以轻易找出第一条时钟的“脉络”: 3——5——7——21——8...
图1是STM32微控制器的时钟树,表1是图中各个标号所表示的部件。 标号图1标号释义 1内部低速振荡器(LSI,40Khz) 2外部低速振荡器(LSE,32.768Khz) 3外部高速振荡器(HSE,3-25MHz) 4内部高速振荡器(HIS,8MHz) 5PLL输入选择位 6RTC时钟选择位 7PLL1分频数寄存器 8PLL1倍频寄存器 9系统时钟选择位 10USB分频寄...
//STM32F4 //1.外设时钟使能和失能 HAL库使能某个外设时钟的方法,如: _HAL_RCC_GPIOA_CLK_ENABLE();_/使能GPIOA时钟 HAL_RCC_GPIOA_CLK_DISABLE();/禁止GPIOA时钟 //2.HAL_RCC-OscConfig()函数 HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef*RCC_OscInitStruct) typedef struct { uint32_t ...