时钟笔记

时钟理论

  • 任何外设的工作都需要时钟。不分配时钟系统无法工作。时钟是STM32单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。

  • HSE时钟——高速外部时钟,一般进去8M然后乘以9倍频得到72M的频率、HSI——高速内部时钟、PLLCLK(锁相环时钟)->72M。一般选择锁相环时钟作为系统的时钟。

  • 一般系统的时钟来源是:HSE、HSI、PLL,这三个时钟由sw位来切换,(sw位写如相关的数值切换时钟来源)HSI:00, HSEA:01, PLL:10。最后读取sws位是否置1来确认时钟切换是否完成。

  • STM32单片机的时钟可以由以下3个时钟源提供:

    1、HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率) 精度较差

    2、HSE:高速外部时钟信号 精度高 来源(1)HSE外部晶体/陶瓷谐振器(晶振) (2)HSE用户外部时钟

    3、LSE:低速外部晶体 32.768kHz 主要提供一个精确的时钟源 一般作为RTC时钟使用

stm32单片机的将时钟信号(例如HSE)经过分频或倍频(PLL)后,得到系统时钟,系统时钟经过分频,产生外设所使用的时钟。
系统开始的时候要配置 1.AHB系统时钟 2. APB1 3. APB2 总共三个时钟,其中的APB1和APB2总线上有许多外设,再根据需要打开所需外设的时钟。(APB1的频率最大为32M所以AHB的时钟72M进去需哟选择2分频分到32M工作,而APB2就不用考虑,他可接受72M的时钟频率)具体时钟配置里程流程如下在这里插入图片描述

设置时钟流程:

   1、将RCC寄存器重新设置为默认值 RCC_DeInit



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



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





   4、设置AHB时钟 RCC_HCLKConfig



   5、设置高速AHB时钟 RCC_PCLK2Config



   6、设置低速速AHB时钟 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_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()
  • 时钟安全系统CSS——被启用的时候可以在紧急时刻切换时钟(例如从HSE切换到HSI,但是HSI最高只有64M,可能会导致有些外设不能工作)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值