510 第4章 时钟控制.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
510 第4章 时钟控制

第四章 时钟控制 1、时钟介绍 2、STM32最小系统 3、时钟的配置使用方法(举例) 方法一:直接对寄存器进行编程 方法二:使用固件库函数进行编程 1、时钟介绍 时钟是STM32单片机芯片的脉搏,是STM32单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处就是,如果不需要使用某一个外设的时候,就将它的时钟源关掉,从而可以降低系统的功耗,达到节能的效果。 由于STM32单片机的外设资源比较多,所以STM32单片机的时钟就显得相对复杂一些,图4.1为STM32单片机的时钟结构树 图4.1 STM32 时钟树 √ √ √ √ √ √ √ √ √ 时钟知识总结 1、STM32时钟源有5个 HSI,高速内部时钟,RC振荡器,频率为8MHz,精度不高 HSE,高速外部时钟,可接外接石英/陶瓷谐振器(晶振),或者接外部时钟源,频率范围为4MHz~16MHz,精度高,典型使用8MHz; LSI,低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟 LSE,低速外部时钟,外接频率为32.768kHz的石英晶体,主要提供一个精确的时钟源,一般作为RTC时钟使用; PLL,锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 2、系统时钟SYSCLK可来源于三个时钟源 HSI振荡器时钟 HSE振荡器时钟 PLL时钟 3、STM32可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HIS、HSE、或者系统时钟 4、任何一个外设在使用之前,必须首先使能其相应的时钟 5、几个重要的时钟 SYSCLK系统时钟 AHB总线时钟 APB1总线时钟(低速) :速度最高(36MHz) APB2总线时钟(高速):速度最高(72MHz) PLL时钟 PCLK2 PCLK1 8MHz 高速外部时钟OSC AHB时钟HCLK 低速AHB时钟PCLK1=36M 高速AHB时钟PCLK2 系统时钟SYSCLK 2、STM32最小系统 STM32最小系统,见书P41,图4.2。 库自带的时钟函数 在文件system_stm32f10x.c中,包含了系统时钟设置函数 STM32上电复位后程序执行流程: 启动文件startup_stm32f10x_hd.s 复位,执行代码:Reset_Handler 执行函数SystemInit() 其中包括 SetSysClock(); 其中包括SetSysClockTo72(); 执行函数main() 默认:若高速外部时钟HSE设置为8MHz, 系统时钟(PLLCLK=SYSCLK=72MHz), AHB时钟即(HCLK=72MHz), 低速AHB时钟(PCLK1=36MHz), 高速AHB时钟(PCLK2=72MHz)。 3、时钟的配置使用方法(举例) 设计要求:若高速外部时钟为(HSE=8MHz),要求经过PLL锁相环倍频后得到系统时钟(PLLCLK=SYSCLK=72MHz),系统时钟经过分频后得到AHB时钟即(HCLK=36MHz),设置高速AHB时钟(PCLK2=18MHz),设置低速AHB时钟(PCLK1=18MHz)。 方法一:直接对寄存器进行编程 方法二:使用固件库函数进行编程 时钟寄存器P32 时钟控制寄存器(RCC_CR) 时钟配置寄存器(RCC_CFGR) 时钟中断寄存器 (RCC_CIR) APB2外设复位寄存器 (RCC_APB2RSTR) APB1外设复位寄存器 (RCC_APB1RSTR) AHB外设时钟使能寄存器 (RCC_AHBENR) APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) 备份域控制寄存器 (RCC_BDCR) 控制/状态寄存器 (RCC_CSR) 方法一:直接对寄存器进行编程 2、RCC的RCC的数据结构体 ——相关配置寄存器 typedef struct { __IO uint32_t CR; /*时钟控制寄存器*/ __IO uint32_t CFGR; /*时钟配置寄存器*/ __IO uint32_t CIR; /*时钟中断寄存器*/ __IO uint32_t APB2RSTR; /*APB2 外设复位寄存器*/ __IO uint32_

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档