您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页基于 STM 32 建立时钟方案

基于 STM 32 建立时钟方案

来源:欧得旅游网
基于 STM 32 建立时钟方案

这里必须阐明系统时钟的简历对于系统运行的重要性。系统所有的运行都是建立在时钟的正常运行上的,没有稳健的系统时钟,就不可能有稳定的系统。

在系统中,复位后首要的任务是建立系统时钟,以下是建立系统时钟的基本步骤:

1. 将所有的 RCC 外设寄存器重设为默认值; 2. 启用外部高速晶振;

3. 等待,知道外部高速晶振稳定; 4. 设置欲取指缓存使能和代码延时值; 5. 设置 AHB(HCLK)等于系统时钟; 6. 设置高速 APB2(PCLK2)为系统时钟;

7. 设置低速 APB1(PCLK1)为系统时钟的 1/2,APB2 最高是 38MHz;

8. 设置 PLL 时钟源及倍频系数,使能 PLL,经过 PLL 被频后最高时钟只能 72MHz; 9. 等待 PLL 初始化;

1

10. 设置 PLL 为系统时钟;

11. 等待 PLL 成功作为系统时钟源。

以下通过实例代码表征上述的使用方法。主要就是根据以上的系统时钟配置的顺序来做代码处理: ErrorStatus HSEStatusUpStatus; // 将外设 RCC 寄存器重设为默认值 RCC_DeInit(); // 设置外部高速晶振

RCC_HSECONfig(RCC_HSE_ON); // 等待 HSE 起振

HSEStatusUpStatus = RCC_WaitForHSEStatusUp(); if(HSEStatusUpStatus == SUCESS) {

// 预取指缓存使能

FLASH_PrefetchBufferCmd(FLASH_PertchBuffer_Enable) // 设置代码延时值,FLASH_Latency_2,2 延时周期 FLASH_SetLatency(FLASH_Latency_2); // 设置 AHB 时钟(HCLK)

//RCC_SYSCLK_Div1 AHB 时钟 = 系统时钟 RCC_HCLKConfig(RCC_SYSCLK_Div1); // 设置高速 AHB2 为系统时钟 RCC_PCLK2Config(RCC_HCLK_Div1);

2

; // 设置低速 AHB 时钟

RCC_PCLK2Config(RCC_HCLK_Div2); // 设置 PLL 时钟

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); // 使能 PLL

RCC_PLLCmd(enable);

// 等待指定 RCC 标志位设置成功,等待 PLL 初始化成功 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { }

// 设置 PLL 为系统时钟

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK) //0x00 HSI,0X04 HSE,0X08 PLL

while(RCC_GetSYSCLKSource() != 0x08)

3

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务