访问电脑版页面

导航:老古开发网手机版STM32单片机的时钟

基于STM32单片机建立系统时钟的设计方案

导读:
关键字:
系统时钟,STM32单片机,

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

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

基于STM32单片机建立系统时钟的设计方案

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初始化;

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);

//设置低速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)

{

}

}
来源;21ic

来源:工程师周亮   作者:21ic  2019/10/29 16:00:00
栏目: [ STM32单片机的时钟]

相关阅读

STM32单片机的5个时钟源解析

STM32的时钟配置

STM32F4时钟系统原理图解析

基于STM32单片机建立系统时钟的设计方案

STM32的各种时钟系统的应用解析

STM32值系统时钟初始化程序设计

LinkedInSTM32F4时钟系统初始化的程序代码分享

STM32单片机的外部时钟晶振该如何选择频率

STM32不使用外部晶振的接法

STM32F4的时钟系统的实现方法

STM32F30X时钟初始化为HSI 64Mhz,并使用PLLCLK作为系统时钟

基于LinkedInSTM32F4时钟系统初始化设置

基于STM32时钟系统的开发及配置

STM32-系统时钟

STM32基于官方库函数的时钟配置

stm32变更外部晶振时钟配置

stm32f 查看系统时钟配置

STM32单片机外部晶振配置时钟设置

STM32 时钟配置方法

STM32 系统时钟复位与系统时钟配置