配置stm32时钟
STM32时钟配置 在 STM32 微控制器中,配置系统时钟是一项非常重要的任务。本文将详细介绍 STM32 时钟配置的步骤和相关知识点。 一、STM32 时钟源 STM32 微控制器有五个时钟源,即 HSI、HSE、LSI、LSE 和 PLL。HSI 是高速内部时钟,RC 振荡器,频率为 8MHz。HSE 是高速外部时钟,可以接石英/陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~16MHz。LSI 是低速内部时钟,RC 振荡器,频率为 40kHz。LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体。PLL 为锁相环倍频输出,其时钟输入源可以选择为 HSI/2、HSE 或者 HSE/2。倍频可以选择为 2~16 倍,但是其输出频率最大不得超过 72MHz。 二、STM32 时钟配置步骤 在 STM32 上,如果不使用外部晶振,OSC_IN 和 OSC_OUT 的接法有两种:① 对于 100 脚或 144 脚的产品,OSC_IN 应接地,OSC_OUT 应悬空。② 对于少于 100 脚的产品,有两种接法:第一种是 OSC_IN 和 OSC_OUT 分别通过 10K 电阻接地,此方法可以提高 EMC 性能;第二种是分别重映射 OSC_IN 和 OSC_OUT 至 PD0 和 PD1,再配置 PD0 和 PD1 为推挽输出并输出'0',此方法可以减小功耗并节省 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); 四、STM32 软件固件库的配置函数 在 STM32 软件固件库中,有一个专门的配置函数 RCC_Configuration,用来配置 RCC 寄存器。该函数首先将 RCC 寄存器重设为默认值,然后打开外部高速晶振 HSE,并等待 HSE 起振。接着,它设置 AHB 时钟、高速 AHB 时钟和低速 AHB 时钟,并配置 PLL。它设置系统时钟并判断是否 PLL 是系统时钟。 STM32 时钟配置是一个复杂的过程,需要对时钟源、时钟配置步骤和配置函数有深入的理解。