欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STM32學習-使用內部時鐘HSI做為系統時鐘 [打印本頁]

作者: xiongxiao    時間: 2015-5-27 16:25
標題: STM32學習-使用內部時鐘HSI做為系統時鐘
現在新做了塊STM32的板子,有點兒悲摧,晶振還沒有,但程序還是要調試的,所以考慮使用內部時鐘HSI。

首先在主程序中注釋掉SystemInit()
然后使用下面的函數做為系統時鐘的初始化函數
void RCC_Configuration(void)
{
  RCC_DeInit();//將外設 RCC寄存器重設為缺省值

  RCC_HSICmd(ENABLE);//使能HSI  
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET)//等待HSI使能成功
  {
  }

  if(1)
  {
    //FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    //FLASH_SetLatency(FLASH_Latency_2);

    RCC_HCLKConfig(RCC_SYSCLK_Div1);   
    RCC_PCLK1Config(RCC_HCLK_Div2);
    RCC_PCLK2Config(RCC_HCLK_Div1);

    //設置 PLL 時鐘源及倍頻系數
    RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_2);               
    //使能或者失能 PLL,這個參數可以取:ENABLE或者DISABLE
    RCC_PLLCmd(ENABLE);//如果PLL被用于系統時鐘,那么它不能被失能
    //等待指定的 RCC 標志位設置成功 等待PLL初始化成功
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }

    //設置系統時鐘(SYSCLK) 設置PLL為系統時鐘源
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  
    //等待PLL成功用作于系統時鐘的時鐘源
    //  0x00:HSI 作為系統時鐘
    //  0x04:HSE作為系統時鐘
    //  0x08:PLL作為系統時鐘  
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
}

當然這段程序是從網上找來的,做了適當的修改。背景設為綠色的部分已經注釋掉的代碼,可能跟庫版本有關,先注釋掉了,要不無法通過編譯。
現在把程序的流程理一下

中間配置時鐘的:
RCC_HCLKConfig(RCC_SYSCLK_Div1);   
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);
分別對應下圖①②③標注的部分。RCC_HCLKConfig(RCC_SYSCLK_Div1)——表示AHB時鐘為系統時鐘SYSCLK;RCC_PCLK1Config(RCC_HCLK_Div2)——表示APB1時鐘為HCLK/2,其中HCLK為AHB時鐘;RCC_PCLK2Config(RCC_HCLK_Div1)——表示APB2時鐘為HCLK.

設置PLL,對應圖中紅圈兒部分,設置PLL時鐘源和倍頻系統。
設置系統時鐘,對應圖中藍圈部分。




作者: 6278779JJJ    時間: 2019-10-16 13:42
學習了




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1