1、时钟配置

 1 /*CPU跑72M的时候,各个系统的速度
 2 频率定义函数:SystemInit()*/
 3 const uint32_t SystemFrequency = SYSCLK_FREQ_72MHz;//硬件频率72M
 4
 5 const uint32_t SystemFrequency_SysClk =SYSCLK_FREQ_72MHz;//系统时钟
 6
 7 const uint32_t SystemFrequency_AHBClk = SYSCLK_FREQ_72MHz;//AHB总线频率
 8
 9  const uint32_t SystemFrequency_APB1Clk = (SYSCLK_FREQ_72MHz/2);
10 //APB1总线
11 const uint32_t SystemFrequency_APB2Clk = SYSCLK_FREQ_72MHz;//APB2总线频率
12
13
14
15
16 /*如果频率不是72M(最高是80M),如果需要修改频率的话,可以如下:*/
17 void RCC_HSE_Configuration(void) //HSE作为PLL时钟,PLL作为SYSCLK
18
19 {
20   RCC_DeInit(); //将外设RCC寄存器重设为缺省值
21   RCC_HSEConfig(RCC_HSE_ON);//设置外部高速晶振(HSE) HSE晶振打开(ON)
22   if(RCC_WaitForHSEStartUp() == SUCCESS) //等待HSE起振,  SUCCESS:HSE晶振稳定且就绪
23   {
24
25     RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB时钟(HCLK)RCC_SYSCLK_Div1——AHB时钟 = 系统时
26
27     RCC_PCLK2Config(RCC_HCLK_Div1); //设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK
28
29     RCC_PCLK1Config(RCC_HCLK_Div2); //设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK
30     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//设置PLL时钟源及倍频系数
31
32     RCC_PLLCmd(ENABLE); //使能PLL
33
34     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ;//检查指定的RCC标志位(PLL准备好标志)设置与否
35
36     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置系统时钟(SYSCLK)
37     while(RCC_GetSYSCLKSource() != 0x08); //0x08:PLL作为系统时钟
38
39    }
40
41 }
42  

时间: 2024-10-04 14:51:41

1、时钟配置的相关文章

LPC1768菜鸟学习之时钟配置

LPC1768的时钟源可以来自三个: 1)内部RC振荡器 内部振荡器可看作看门狗定时器的时钟源,也可作PLL0和cpu的时钟源,但是无法作为usb的时钟源,因为精度达不到.而且如果CAN波特率高于100kb/s,则也不适用了.在系统上电时,LPC1768都使用内部振荡器,直到软件将其切换为另一种可用的时钟源. 2)主振荡器 主振荡器可作为CPU的时钟源,需要通过分频和倍频进行配置使用.基本会使用主振荡器作为时钟源 3)RTC振荡器 RTC振荡器可提供1Hz-32kHz的RTC时钟输出,可用作PL

四轴飞行器1.2.3 STM32F407时钟配置和升级标准库文件

原创文章,欢迎转载,转载请注明出处 这个星期进度比较慢哈,只有周末和晚上下班回来才能做,事件不连续,琐碎的事情又比较多,挺烦的,有多琐碎呢?           1.本人有点小强迫症哈,虽然RTT将文件夹已经分类的很好了,但是在一个项目跟目录下这样放着看起来还是很不舒服的哈,于是强迫症范了,要整理下它.按照以前做项目的习惯,将程序分为四个层次,硬件层,驱动层,系统层和应用层,我们就整理下,对三个文件夹,其中硬件层和驱动层放在BSP文件夹里面,BSP文件里面再分硬件和驱动的文件夹,同时添加一个库文

STM32F407VG (四)时钟配置

1.STM32 F407VG 的starup_stm32f40_41xxx.s的例如以下位置调用 IMPORT SystemInit,之后调用main函数,所以 进入main函数时候就已经自己主动完毕有关时钟配置了. 2.在SystemInit函数里面完毕时钟配置,配上图和例如以下凝视就不须要多解释了,一目了然. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGl0empt/font/5a6L5L2T/fontsize/400/fill/I0JBQk

STM8S时钟配置CLK_HSIPrescalerConfig与CLK_SYSCLKConfig区别

STM8S的时钟配置通过:CLK_CKDIVR寄存器,而CLK_CKDIVR一个是配置HSI分频,另一个是配置CPU的分频 static void CLK_Config(void){ CLK_DeInit(); /* Clock divider to HSI/1 */ CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  // 只配置HSI分频率,CPU分频率1 /* Output Fcpu on CLK_CCO pin */ CLK_CCOConfig

exynos 4412 时钟配置

/** ****************************************************************************** * @author ? ?Maoxiao Hu * @version ? V1.0.0 * @date ? ? ? Jan-2015 ****************************************************************************** * < COPYRIGHT 2015 IS

LPC1768时钟配置

购买LPC1768已经有一段时间了,但是由于之前工作比较忙,一直没有来得及学习,所以搁置了一段时间. 最近终于有一些时间来学习了,板子上的资源其实还是蛮丰富的,cortex-m3有的,基本上在这个板子上都引出来了, 而且学习的帮助文档也不少,所以学习起来比较方便. 板子的样子如下图所示,具体的详细资源,各位可以自行去查找. 应该来说,板子的学习,肯定会逃不过时钟的配置,因此下面将我配置时钟的过程一一记录下来,以便后期工作需要. 其实LPC1768的时钟配置过程还是比较清晰的. LPC1768的时

STM32F4系统时钟配置及描述

STM32F4系统时钟配置及描述 stm32f407时钟配置方法(感觉很好,分享一下)

STM32F4_RCC系统时钟配置及描述

Ⅰ.概述 对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳. 对于使用开发板学习的朋友来说,RCC系统时钟这一块知识估计没怎么去配置过,原因在于开发板提供的晶振基本上都是官方标准的时钟频率,使用官方的标准库,这样系统时钟就是默认的配置,也就是默认的频率.但对于自己设计开发板,或者想要改变系统时钟频率(如:降低功耗就需要降频)的朋友来说,配置系统时钟就有必要了. 关于时钟这一块对定时器(TIM.RTC.WDG等)相关的外设也比较重要,因为要求精准,就需要

STM32F0xx_RTC实时时钟配置详细过程

Ⅰ.概述 今天总结RTC(Real Time Clock)实时时钟相关的知识,顺带将BKP简单总结一下. STM32的RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后, RTC的设置和时间维持不变. STM32F0的RTC模块和F1的RTC模块最大区别在于F0模块中有“DATE”和“TIME”寄存器,也就是可以直接读取寄存器里面的值,而F1是秒计数寄存器的值,需要通过相关算法下才能得到时间的值. 本文提供的软件工程里面还包含一个BKP模块,主要是用于

LPC1768 时钟配置

1)内部RC振荡器 内部振荡器可看作看门狗定时器的时钟源,也可作PLL0和cpu的时钟源,但是无法作为usb的时钟源,因为精度达不到.而且如果CAN波特率高于100kb/s,则也不适用了.在系统上电时,LPC1768都使用内部振荡器,直到软件将其切换为另一种可用的时钟源. 2)主振荡器 主振荡器可作为CPU的时钟源,需要通过分频和倍频进行配置使用.基本会使用主振荡器作为时钟源 3)RTC振荡器 RTC振荡器可提供1Hz-32kHz的RTC时钟输出,可用作PLL0.CPU和看门狗定时的时钟源. L