打印

STM32时钟问题

[复制链接]
1425|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
06006109|  楼主 | 2012-2-24 12:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RCC_DeInit();
/* Enable HSE */
  RCC_HSEConfig(RCC_HSE_ON);   /*HSE时钟为8MHZ*/
/* Wait till HSE is ready */
  HSEStartUpStatus = RCC_WaitForHSEStartUp();
  if(HSEStartUpStatus == SUCCESS)
  {   /* HCLK = SYSCLK */
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
   /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1);
    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);
    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    /* Enable PLL */
    RCC_PLLCmd(ENABLE);
    /* Wait till PLL is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    /* Wait till PLL is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
复位后系统时钟首先是采用HSI,后来根据配置才发生切换。是不是这样的???
上面代码中 RCC_HCLKConfig(RCC_SYSCLK_Div1); 这句函数后,AHB时钟到底是多少?72还是8MHZ?
求解答
沙发
香水城| | 2012-2-24 12:08 | 只看该作者
注释里面有说明:HCLK = SYSCLK,即:SYSCLK是多少,AHB时钟就是多少。

使用特权

评论回复
板凳
06006109|  楼主 | 2012-2-24 12:18 | 只看该作者
2# 香水城
你说这个SYSCLK是多少?

使用特权

评论回复
地板
香水城| | 2012-2-24 12:20 | 只看该作者
2# 香水城
你说这个SYSCLK是多少?
06006109 发表于 2012-2-24 12:18


除了8MHz还有其他选择吗?

使用特权

评论回复
5
06006109|  楼主 | 2012-2-24 12:32 | 只看该作者
除了8MHz还有其他选择吗?
香水城 发表于 2012-2-24 12:20

那就是说最后AHB是8MHZ????

使用特权

评论回复
6
香水城| | 2012-2-24 12:35 | 只看该作者
那就是说最后AHB是8MHZ????
06006109 发表于 2012-2-24 12:32


请你自己思考一下好不好!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

1

粉丝