当前位置:首页 >> 信息与通信 >>

stm32时钟配置


STM32 时钟系统
在 STM32 中,有五个时钟源,为 HSI、HSE、LSI、LSE、PLL。 ①HSI 是高速内部时钟,RC 振荡器,频率为 8MHz。 ②HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~16MHz。 ③LSI 是低速内部时钟,RC 振荡器,频率为 40kHz。 ④LSE 是低速外部时钟,接频率为 32.76

8kHz 的石英晶体。 ⑤PLL 为锁相环倍频输出,其时钟输入源可选择为 HSI/2、HSE 或者 HSE/2。倍频可选择为 2~16 倍,但是其输出频率最大不得超过 72MHz。

在 STM32 上如果不使用外部晶振,OSC_IN 和 OSC_OUT 的接法
如果使用内部 RC 振荡器而不使用外部晶振,请按照下面方法处理: 1)对于 100 脚或 144 脚的产品,OSC_IN 应接地,OSC_OUT 应悬空。 2)对于少于 100 脚的产品,有 2 种接法: 2.1)OSC_IN 和 OSC_OUT 分别通过 10K 电阻接地。此方法可提高 EMC 性能。 2.2)分别重映射 OSC_IN 和 OSC_OUT 至 PD0 和 PD1,再配置 PD0 和 PD1 为推挽输出并输 出'0'。此方法可以减小功耗并(相对上面 2.1)节省 2 个外部电阻。 使用 HSE 时钟,程序设置时钟参数流程: 1、将 RCC 寄存器重新设置为默认值 RCC_DeInit; 2、打开外部高速时钟晶振 HSE RCC_HSEConfig(RCC_HSE_ON); 3、等待外部高速时钟晶振工作 HSEStartUpStatus = RCC_WaitForHSEStartUp(); 4、设置 AHB 时钟 RCC_HCLKConfig; 5、设置高速 AHB 时钟 RCC_PCLK2Config; 6、设置低速速 AHB 时钟 RCC_PCLK1Config; 7、设置 PLL RCC_PLLConfig; 8、打开 PLL RCC_PLLCmd(ENABLE); 9、等待 PLL 工作 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) 10、设置系统时钟 RCC_SYSCLKConfig; 11、判断是否 PLL 是系统时钟 while(RCC_GetSYSCLKSource() != 0x08) 12、打开要使用的外设时钟 RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()

下面是 TM32 软件固件库的程序中对 RCC 的配置函数(使用外部 8MHz 晶振) /*******************************************************************************

* * * * *

Function Name : RCC_Configuration Description : RCC 配置(使用外部 8MHz 晶振) Input : 无 Output : 无 Return : 无

*******************************************************************************/ void RCC_Configuration(void) { /*将外设 RCC 寄存器重设为缺省值 */ RCC_DeInit(); /*设置外部高速晶振(HSE)*/ RCC_HSEConfig(RCC_HSE_ON); /*等待 HSE 起振*/ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { /*设置 AHB 时钟(HCLK)*/ RCC_HCLKConfig(RCC_SYSCLK_Div1); 钟 /* 设置高速 AHB 时钟(PCLK2)*/ RCC_PCLK2Config(RCC_HCLK_Div1); /*设置低速 AHB 时钟(PCLK1)*/ RCC_PCLK1Config(RCC_HCLK_Div2); 2 /*设置 FLASH 存储器延时时钟周期数*/ FLASH_SetLatency(FLASH_Latency_2); //RCC_SYSCLK_Div1——AHB 时钟 = 系统时 //SUCCESS:HSE 晶振稳定且就绪

//RCC_HSE_ON——HSE 晶振打开(ON)

//RCC_HCLK_Div1——APB2 时钟 = HCLK

//RCC_HCLK_Div2——APB1 时钟 = HCLK /

//FLASH_Latency_2

2 延时周期

/*选择 FLASH 预取指缓存的模式*/ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); // 预取指缓存使能 /*设置 PLL 时钟源及倍频系数*/ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

// PLL 的输入时钟 = HSE 时钟频率;RCC_PLLMul_9——PLL 输入时钟 x 9 /*使能 PLL */ RCC_PLLCmd(ENABLE); /*检查指定的 RCC 标志位(PLL 准备好标志)设置与否*/ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } /*设置系统时钟(SYSCLK) */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //RCC_SYSCLKSource_PLLCLK——选择 PLL 作为系统时钟 /* PLL 返回用作系统时钟的时钟源*/ while(RCC_GetSYSCLKSource() != 0x08) { } } /*使能或者失能 APB2 外设时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC , ENABLE); //RCC_APB2Periph_GPIOA GPIOA 时钟 //RCC_APB2Periph_GPIOB GPIOB 时钟 //RCC_APB2Periph_GPIOC GPIOC 时钟 //RCC_APB2Periph_GPIOD GPIOD 时钟 }

//0x08:PLL 作为系统时钟


相关文章:
STM32时钟配置方法详解
STM32时钟配置方法详解_计算机硬件及网络_IT/计算机_专业资料。STM32时钟配置方法详解 一、在 STM32 中,有五个时钟源,为 HSI、HSE、LSI、LSE、PLL。 ①HSI 是...
快速入门系列--stm32时钟配置方法详解
快速入门系列--stm32时钟配置方法详解_计算机硬件及网络_IT/计算机_专业资料。一、在 STM32 中,有五个时钟源,为 HSI、HSE、LSI、LSE、PLL。 ①HSI 是高速内部...
STM32 时钟详解及范例
STM32 时钟详解及范例_计算机硬件及网络_IT/计算机_专业资料。一、综述: 1、时钟...三、初始化设置 采用 8MHz 外部 HSE 时钟,在 MDK 编译平台中,程序的时钟设...
STM32时钟系统与软件配置
STM32时钟系统与软件配置_IT/计算机_专业资料。STM32时钟系统与软件配置在STM32 中,有五个时钟源,为 HSI、HSE、LSI、LSE、PLL。 ①HSI 是高速内部时钟,RC 振荡...
STM32时钟设置
STM32时钟设置_电子/电路_工程科技_专业资料。STM32时钟设置STM32 时钟设置大家都知道在使用单片机时,时钟速度决定于外部晶振或内部 RC 振荡电路的频率,是不可 以...
stm32时钟配置简单搞定
stm32时钟配置简单搞定_计算机硬件及网络_IT/计算机_专业资料。stm32时钟配置简单搞定,16M时钟配置 (1)stm32f103xx 的芯片,在 stm32f10x.h 库中修改大概 119 ...
stm32时钟配置
stm32时钟配置_计算机硬件及网络_IT/计算机_专业资料。1 STM32 时钟系统在 STM32 中,有五个时钟 2 / 6 源,为 HSI、HSE、LSI、LSE、PLL。 ①HSI 是高速内...
STM32F051使用自带时钟48M设置
STM32F051使用自带时钟48M设置_计算机软件及应用_IT/计算机_专业资料。正确设置: void RCC_Configuration(void); void RCC_Configuration(void) { //?è ??PLL...
STM32芯片时钟配置
STM32芯片时钟配置_信息与通信_工程科技_专业资料。对 STM32 进行软件开发时,最基本的就是对 STM32 芯片进行时钟和端口配置, 然后是对项目所用到的片上资源进行...
stm32如何配置时钟
stm32如何配置时钟_信息与通信_工程科技_专业资料。stm32学习STM32 笔记 2 如何配置时钟 学习 STM32 笔记 2 如何配置时钟 /*** 该程序目的是用于测试核心板回来...
更多相关标签:
stm32时钟 | stm32 | stm32时钟配置工具 | stm32 系统时钟 | stm32内部时钟配置 | stm32系统时钟设置 | stm32时钟初始化 | stm32定时器配置 |