先看一张STM32时钟系统框图.docVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
先看一张STM32时钟系统框图

先看一张STM32时钟系统框图 在STM32中,有五个时钟源,分别是为HSI、HSE、LSI、LSE、PLL。 HSI内部高速RC振荡时钟,8MHz;HSE,外部高速时钟,4M__16MHZ;LSI,内部低速RC 时钟,40KHZ;LSE外部低速时钟,32.768KHz;PLL锁相环倍频,由图可知,可以选择HSE/2、HSI/2、HSE,倍频系数可以是2——16,但是不要超过72MHz。 SYSCLK系统时钟,由图可知可以选择HSE、HSI、 PLLCLK的一种,最高72MHz,通过AHB分频器后送给各个模块,AHB分频可以选择1、2、4、8、16、 64、128、 256 、512,AHB分频后送给5大模块使用。 1 HCLK ,也就是AHB总线、内核、内存和DMA使用的HCLK时钟 2 通过8分频后送给Cortex的系统定时器时钟 3 直接送给Cortex的空闲运行时钟FCLK 4 送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用 PCLK1,最大频率36MHz ,另一路 定时器 Timer 2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用 5 送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用 PCLK2,最大频率72MHz ,另一路送给定时器 Timer 1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。 注意定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则它的倍频值就为2。连接在APB1 低速外设 上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4。注意USB模块虽然需要一个单独的48MHz时钟信号,但它应该不是供USB模块工作的时钟,而只是提供给串行接口引擎 SIE 使用的时钟。USB模块工作的时钟应该是由APB1提供的。连接在APB2 高速外设 上的设备有:UART1、SPI1、Timer1、ADC1、ADC2、所有普通IO口 PA~PE 、第二功能IO口。 配上一个简单的自己的时钟配置程序,使用库函数。 void RCC_Configuration void //时钟配置 ErrorStatus HSEStartUpStatus;//判断标志变量 RCC_HSEConfig RCC_HSE_ON ;//使用外部时钟 HSEStartUpStatus RCC_WaitForHSEStartUp ;//等待外部时钟稳定 if HSEStartUpStatus SUCCESS //如果外部晶振启动成功 RCC_HCLKConfig RCC_SYSCLK_Div1 ;//HCLK AHB时钟 值等于系统时钟 RCC_PCLK1Config RCC_HCLK_Div2 ;//PCLK1 APB1时钟 值等于HCLK的一半,最高不超过36MHz RCC_PCLK2Config RCC_HCLK_Div1 ;//PCLK2 APB2时钟 值等于HCLK,最高可是72MHz FLASH_SetLatency FLASH_Latency_2 ;//FLASH时序控制,SYSCLK0~24MHz Latency 0.SYSCLK25~48MHz Latency 1.SYSCLk //48~72MHz Latency 2 FLASH_PrefetchBufferCmd FLASH_PrefetchBuffer_Enable ;//开启FLASH预取指功能 RCC_PLLConfig RCC_PLLSource_HSE_Div1,RCC_PLLMul_9 ;//HSE提供系统时钟,9倍频,也就是72MHz RCC_PLLCmd ENABLE ;//启动PLL while RCC_GetFlagStatus RCC_FLAG_PLLRDY RESET ;//等待PLL稳定 RCC_SYSCLKConfig RCC_SYSCLKSource_PLLCLK ;//系统时钟来自PLL输出 while RCC_GetSYSCLKSource ! 0x08 ;//等待系统时钟稳定

文档评论(0)

haocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档