赞
踩
主要记录工作当中一些基础知识的累积,方便日后复习。
我们把系统时钟配置分为七个步骤,分别用标号①~⑦表示,详细过程为:
① 时钟源参数设置:HSE 或者 HSI 配置。这里我们选择 HSE 为时钟源,所以我们之前必须
在 RCC 配置中我们开启 HSE。
② 时钟源选择:HSE 还是 HSI。这里我们配置选择器选择 HSE 即可。
③ PLL 分频系数 M 配置。分频系数 M 我们设置为 5。
④ 主 PLL 倍频系数 N 配置。倍频系数 N 我们设置为 160。
⑤ 主 PLL 分频系数 P 配置。分频系数 P 我们配置为 2。
⑥ 系统时钟时钟源选择:PLL,HSI 还是 HSE。这里毫无疑问,我们选择 PLL,选择器选择 PLLCLK。
⑦ 经过上面配置以后此时 SYSCLK=400Mhz。
AHB,APB1、APB2、APB3 和 APB 总线时钟以及 Systick 时钟的最终来源都是系统时钟SYSCLK。其中 AHB 总线时钟 HCLK 是由 SYSCLK 经过 AHB 预分频器之后的来,如果我们要设置HCLK为200MHz(最大也就200Mhz),那么我们只需要配置图中标号8的地方为2即可。得到 HCLK 之后,接下来我们将在图标号 9~12 处同样的方法依次配置 APB3、APB1、APB2和 APB4 分频系数分别为 2,2、2 和 2 即可。注意!systick 固定为 400MHz,配置完成之后,那么 HCLK=200MHZ,Systic=400MHz,PCLK1=100MHz,PCLK2=100MHz,PCLK3=100Mhz,PCLK4=100MHz,这和我们使用 Stm32_Clock_Init 函数配置的时钟是一模一样的。
htim7.Instance = TIM7;
htim7.Init.Prescaler = 2*HAL_RCC_GetPCLK1Freq()/10000-1
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
htim7.Init.Period = 999;
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
定时器中断更新周期(T) = TIMxCLK / Prescaler + 1)/Period + 1)
计算可得预分频系数为19999
T = 200Mhz / (19999+1)/(999+1) = 0.1S
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。