您的位置 首页 IC

STM32 RCC基本原理和装备流程

总是在其他外设的说明里看到HCLK,PCLK类似的字眼,但没有一个清晰的逻辑概念。对系统时钟不了解的情况下,前两天试了下sysTick,情况并不理…

总是在其他外设的说明里看到HCLK,PCLK相似的字眼,但没有一个明晰的逻辑概念。对体系时钟不了解的状况下,前两天试了下sysTick,状况并不抱负,更不要说RTC和TIM了。所以开端看RCC

逻辑框图

芯片运转所需的时钟源分为四种,HSE (High Speed External),HSI,LSE,LSI (Low Speed Internal)。体系时钟频率能够经过软件进行操控,设置分频倍频值和该核算的时钟源;关于芯片各外设和总线来说,都有自己运转所需求的时钟,要依据用户的运用与否,对它们别离加以装备,到达节省资源的意图。关于上述杂乱的逻辑结构,我很喜欢STSTM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs>7.2 Clocks中的逻辑框图。

蓝线是酿制进行操作和装备的时钟源,绿线是需求装备的PLL分频和倍频器,红线是某时钟源能够供应的外设,紫线是答应的频率最大值。结合RCC设置的代码,把这个图看熟了,关于芯片各部分的作业频率和称号将会有一个较明晰的知道。

关于AHB和APB上的外设和频率,依据上述文档中的Table1,小结如下:

AHB (最大72M)

APB1 (最大36M): DAC, PWR, BKP, CAN, SRAM, I2C, UART2~5, SPI2/3, RTC, TIM2~7

APB2 (最大72M): ADC, SPI1, TIM1/8, GPIOA~F, EXTI, AFIO

寄存器

RCC寄存器大致分为以下几种;1. AHB, APB1, APB2时钟使能和复位寄存器;2. 查询和开关各时钟源,中止源;3. 设置时钟源衔接状况,分频倍频值;4. 备份域操控,与RTC和LSE相关。

时钟源装备流程

结合ST供给的例程,看程序刚启动时关于RCC的装备,大致过程为:

1. 在操控寄存器CR里,翻开HSI;2. 在装备寄存器CFGR里,铲除各预分频器,断开体系时钟的衔接;3. 在CR里,封闭HSE, CSS, PLL, HSE旁路;4. 在CFGR里,断开PLL衔接,清空预分频器和倍频器;5. 铲除中止使能和挂起;6. 设置体系时钟。之所以需求2,3过程的次序,是因为在改动衔接前,不能断开时钟源。

以STM32F107VC为例,设置72M体系时钟的过程为:

1. 在CR里翻开HSE并等候翻开成功。2. 在CFGR里设置预分频值,使HCLK = SYSCLK, PCLK2 = HCLK, PCLK1 = HCLK/2。3. 在CFGR2中设置PREDIV1的来历为PLL2,预分频值为5;PLL2为HSE (25M) / 5 * 8 (= 40M) 所得;在CR中使能PLL2并等候设置成功。4. 在CFGR中设置PLLCLK的来历为PREDIV1,倍频值为9 (40 / 5 * 9 = 72M为PLLCLK的频率);在CR中使能PLL并等候设置成功。5. 在CFGR中设置SYSCLK为PLLCLK。完结体系时钟设置。

至此,程序时钟源频率初始化完结。再经过修正AHB, APB时钟使能寄存器的值,使能所需外设,即可使体系正常运转。别的,在初始化各外设时,应先将RCC中APB置位寄存器中的对应项置位,康复初始状况。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/265356.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部