l06006109 发表于 2012-2-24 13:33:43

STM32时钟

 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?
求解答

l06006109 发表于 2012-2-24 13:49:16

RE:STM32时钟

怎么没有人回复啊,求解答啊

h_12345 发表于 2012-3-1 17:30:49

RE:STM32时钟

while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
在这句之前时钟都还是没有完全切换过来,都是系统默认的时钟。

zglkmm 发表于 2012-3-2 23:17:07

RE:STM32时钟

;P看看
页: [1]
查看完整版本: STM32时钟