STM32F407时钟树

发布者:火星最新更新时间:2017-09-25 来源: eefocus关键字:STM32F407  时钟树 手机看文章 扫描二维码
随时随地手机看文章

最近学习下STM32F4的芯片,首先还是要了解时钟系统。库函数调用函数static void SetSysClock(void)初始化时钟。依次初始化HCLK、 PCLK2、PCLK1、PLL。最后打开PLL


  1. static void SetSysClock(void)  

  2. {  

  3. /******************************************************************************/  

  4. /*            PLL (clocked by HSE) used as System clock source                */  

  5. /******************************************************************************/  

  6.   __IO uint32_t StartUpCounter = 0, HSEStatus = 0;  

  7.     

  8.   /* Enable HSE */  

  9.   RCC->CR |= ((uint32_t)RCC_CR_HSEON);  

  10.    

  11.   /* Wait till HSE is ready and if Time out is reached exit */  

  12.   do  

  13.   {  

  14.     HSEStatus = RCC->CR & RCC_CR_HSERDY;  

  15.     StartUpCounter++;  

  16.   } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));  

  17.   

  18.   if ((RCC->CR & RCC_CR_HSERDY) != RESET)  

  19.   {  

  20.     HSEStatus = (uint32_t)0x01;  

  21.   }  

  22.   else  

  23.   {  

  24.     HSEStatus = (uint32_t)0x00;  

  25.   }  

  26.   

  27.   if (HSEStatus == (uint32_t)0x01)  

  28.   {  

  29.     /* Select regulator voltage output Scale 1 mode */  

  30.     RCC->APB1ENR |= RCC_APB1ENR_PWREN;  

  31.     PWR->CR |= PWR_CR_VOS;  

  32.   

  33.     /* HCLK = SYSCLK / 1*/  

  34.     RCC->CFGR |= RCC_CFGR_HPRE_DIV1;  

  35.      

  36.     /* PCLK2 = HCLK / 2*/  

  37.     RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;  

  38.       

  39.     /* PCLK1 = HCLK / 4*/  

  40.     RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;  

  41.   

  42.     /* Configure the main PLL */  

  43.     RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |  

  44.                    (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);  

  45.   

  46.     /* Enable the main PLL */  

  47.     RCC->CR |= RCC_CR_PLLON;  

  48.   

  49.     /* Wait till the main PLL is ready */  

  50.     while((RCC->CR & RCC_CR_PLLRDY) == 0)  

  51.     {  

  52.     }  






关键字:STM32F407  时钟树 引用地址:STM32F407时钟树

上一篇:STM32F030的IAP应用简介
下一篇:STM32F4 UART1 DMA发送和接收不定长度数据

推荐阅读最新更新时间:2024-03-16 15:38

stm32f407之ADC与DMA
昨天调试了stm32f407的ADC功能,因为那个恼人的printf函数问题这篇ADC文章一直没有发表出来,今天5.1归来抽空补上。功能为实现ADC的单通道电压采集,并实现DMA数据管理,同时加了ADC看门狗功能,并用printf函数通过串口返回采集值与换算后的实际电压值。代码如下: /************************************************************ Copyright (C), 2012-2022, yin. FileName: main.c Author: 小枣年糕 Date: 2012\05\01 Description: ADC3 DMA print
[单片机]
Stm32f407 led代码简单分析
硬件平台: stm32f407ve 软件平台: win10 (OS Name: Microsoft Windows 10 Enterprise OS Version: 10.0.18363 N/A Build 18363) Keil5 5.26.2 HAL库版本: 2.14.0(目前下载的最新的) 实验介绍: 本次是使用hal库进行led闪烁实验。(根据之前建立的模板操作,这里不再建立工程模板) //包含基本的头文件 #include stm32f4xx.h //led端口的初始化,需要设置对应得IO引脚为
[单片机]
<font color='red'>Stm32f407</font> led代码简单分析
STM32F407-ADC(模数转换)
一、硬件 STM32F407开发板,杜邦线。 通过通道获取板载电压的模拟输入信号转变为数字信号,并通过转换变成电压。 STM32F407有3个ADC,每个ADC有16个通道,下表为ADC通道对应的引脚,使用哪个通道就用杜邦线将对应的引脚与模拟输入连接起来。 二、整体流程 ① 开启PA时钟和ADC1时钟,设置PA1为模拟输入。 RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); GPIO_Init(); 对于IO初始化要注意的
[单片机]
STM32F407-ADC(模数转换)
STM32F407玩控制—不完全微分PID控制
常规pid算法有缺陷,主要有:1是当偏差发生突变时,微分作用仅在一个周期内起作用,这个也不合理,2是当输入PV值有噪声时,调节器输出波动大,这在前面的图中可以看到,这对机械执行机构不理,使执行机构容易坏,执行机构故障多,自然生产也就不稳定,所以工程上通常用不完全微分PID调节器,文献中有两种类型的不完全微分PID算法,一种是在常规PID算法后串一个一阶延滞环节(比如参见金以慧《过程控制》,即 Gc(s)=Kc*(1+1/(Ti*s)+Td*s)/(Tf*s+1),这种不完全微分PID算法,与前面讲的常规pid算法加过程值(PV)滤波有点相近,仅在设定(SP)有变化的情况下,调节器输出不同,其余情况下是一样的;另一种是在微分环节上串
[单片机]
用<font color='red'>STM32F407</font>玩控制—不完全微分PID控制
STM32F407-SPI通信接口
1.SPI概念 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 SPI接口一般使用4条线通信: MISO 主设备数据输入,从设备数据输出。 MOSI 主设备数据输出,从设备数据输入。 SCLK时钟信号,由主设备产生。 CS从设备片选信号,由主设备控制。 主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。 串行移位寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行移位寄存器中的内
[单片机]
STM32F407-SPI通信接口
stm32专题五:时钟(二)系统配置时钟函数分析
分析stm32的系统时钟函数,对于我们实现自定义时钟配置非常重要,以下是标准库函数中的时钟配置函数。 static void SetSysClockTo72(void) { __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ /* Enable HSE */ // 使能HSE RCC- CR |= ((uint32_t)RCC_CR_HSEON); /* Wait till HSE is ready
[单片机]
STM32-时钟
学习一个硬件,首先要把它的时钟单元弄的清晰一点,这会有助于加快你的学习进度,一开始我也有点迷糊,感觉STM32的时钟系统挺复杂,挺难懂的,但是深入接触了之后,发现也是挺简单的,可能一开始没有仔细看的原因 时钟系统就相当于人类的心跳一样,它为整个硬件系统提供时钟周期,只有它的正常运行,系统或者说片上系统才能够正常的工作。 首先,应该找到时钟源,也就是心跳的发源地,STM32有4个时钟源,分别是内部高速时钟,内部低速始终,外部高速时钟,外部低速时钟,其中外部高速时钟和外部低速始终是由片外晶体振荡器提供的,片内的时钟系统由内部RC震荡器提供。下面贴上STM32的时钟树框图: 如果早期看不明白,也不用着急去弄明白了,等到使用的时候自然
[单片机]
STM32系统时钟配置及时钟
参考资料:《 STM32F4xx 中文参考手册》 RCC 章节。 STM32时钟可大致分为系统时钟和其它时钟两大类,总共包含5个时钟源 HSI(High Speed Internal Clock)、HSE(High Speed External Clock)、LSI(low Speed Internal Clock)、LSE(Low Speed External Clock )、PLL(Phase Locked Loop Clock)。 下图即为STM32时钟树,黄色标识部分即为系统时钟部分,橙色即为其它时钟部分。 一、系统时钟 ①HSE(High Speed External Clock)高速外部时钟信号
[单片机]
STM32系统<font color='red'>时钟</font>配置及<font color='red'>时钟</font><font color='red'>树</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved