0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >消费电子 > 基于 STM 32 建立时钟方案

基于 STM 32 建立时钟方案

来源: 维库电子网
2019-12-05
类别:消费电子
eye 92
文章创建人 拍明

原标题:基于 STM 32 建立时钟方案

  基于 STM 32 建立时钟方案

  2019-10-30 15:48 预计 4 分钟读完

  这里必须阐明系统时钟的简历对于系统运行的重要性。系统所有的运行都是建立在时钟的正常运行上的,没有稳健的系统时钟,就不可能有稳定的系统。

  在系统中,复位后首要的任务是建立系统时钟,以下是建立系统时钟的基本步骤:

1. 将所有的 RCC 外设寄存器重设为默认值;

  2. 启用外部高速晶振;

  3. 等待,知道外部高速晶振稳定;

  4. 设置欲取指缓存使能和代码延时值;

  5. 设置 AHB(HCLK)等于系统时钟;

  6. 设置高速 APB2(PCLK2)为系统时钟;

  7. 设置低速 APB1(PCLK1)为系统时钟的 1/2,APB2 最高是 38MHz;

  8. 设置 PLL 时钟源及倍频系数,使能 PLL,经过 PLL 被频后最高时钟只能 72MHz;

  9. 等待 PLL 初始化;

  10. 设置 PLL 为系统时钟;

  11. 等待 PLL 成功作为系统时钟源。

  以下通过实例代码表征上述的使用方法。主要就是根据以上的系统时钟配置的顺序来做代码处理:

  ErrorStatus HSEStatusUpStatus;

  // 将外设 RCC 寄存器重设为默认值

  RCC_DeInit();

  // 设置外部高速晶振

  RCC_HSECONfig(RCC_HSE_ON);

  // 等待 HSE 起振

  HSEStatusUpStatus = RCC_WaitForHSEStatusUp();

  if(HSEStatusUpStatus == SUCESS)

  {

  // 预取指缓存使能

  FLASH_PrefetchBufferCmd(FLASH_PertchBuffer_Enable);

  // 设置代码延时值,FLASH_Latency_2,2 延时周期

  FLASH_SetLatency(FLASH_Latency_2);

  // 设置 AHB 时钟(HCLK)

  //RCC_SYSCLK_Div1 AHB 时钟 = 系统时钟

  RCC_HCLKConfig(RCC_SYSCLK_Div1);

  // 设置高速 AHB2 为系统时钟

  RCC_PCLK2Config(RCC_HCLK_Div1);

  // 设置低速 AHB 时钟

  RCC_PCLK2Config(RCC_HCLK_Div2);

  // 设置 PLL 时钟

  RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);

  // 使能 PLL

  RCC_PLLCmd(enable);

  // 等待指定 RCC 标志位设置成功,等待 PLL 初始化成功

  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

  {

  }

  // 设置 PLL 为系统时钟

  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK)

  //0x00 HSI,0X04 HSE,0X08 PLL

  while(RCC_GetSYSCLKSource() != 0x08)


责任编辑:

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: STM_32_

相关资讯