微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32学习笔记 系统时钟

stm32学习笔记 系统时钟

时间:11-13 来源:互联网 点击:

缓存使能

RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

// PLL的输入时钟 = HSE时钟频率;RCC_PLLMul_9——PLL输入时钟x 9

RCC_PLLCmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

{

}

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

//RCC_SYSCLKSource_PLLCLK——选择PLL作为系统时钟

while(RCC_GetSYSCLKSource() != 0x08) //0x08:PLL作为系统时钟

{

}

}

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时钟

}

由于我现在所用的开发板已经外接了一个8MHz的晶振,因此将采用HSE时钟,在MDK编译平台中,程序的时钟设置参数流程如下:

(1)将RCC寄存器重新设置为默认值:RCC_DeInit;

(2)打开外部高速时钟晶振HSE:RCC_HSEConfig(RCC_HSE_ON);

(3)等待外部高速时钟晶振工作:HSEStartUpStatus = RCC_WaitForHSEStartUp();

(4)设置AHB时钟(HCLK):RCC_HCLKConfig;

(5)设置高速AHB时钟(APB2):RCC_PCLK2Config;

(6)设置低速AHB时钟(APB1):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_APB2PerphClockCmd()….

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top