<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          STM32F103x RCC寄存器配置

          作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
          rccresetandclockcontrol 復(fù)位及時(shí)鐘控制

          本文引用地址:http://www.ex-cimer.com/article/201611/317023.htm

          主要是設(shè)置時(shí)鐘樹中的內(nèi)容,如下圖所示:

          具體在RCC_Configuration函數(shù)中的體現(xiàn)。

          第一步:系統(tǒng)時(shí)鐘選擇哪個(gè),HSE、HSI還是PLLCLK。

          RCC_HSEConfig(RCC_HSE_ON); //使用HSE

          如果HSE時(shí)鐘已經(jīng)穩(wěn)定,硬件會(huì)將RCC_CR的HSERDY位置1。

          第二步:判斷HSE時(shí)鐘是否穩(wěn)定

          if(RCC_WaitForHSEStartUp()==SUCCESS)

          第三步:使能FLASH的預(yù)取址緩沖區(qū),并設(shè)置FLASH的等待狀態(tài)。(具體功能見FLASH部分)

          /*EnablePrefetchBuffer*/

          FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

          /*Flash2waitstate*/

          FLASH_SetLatency(FLASH_Latency_2);

          第四步:設(shè)置AHB預(yù)分頻系數(shù)。預(yù)分頻系數(shù)可以是1、2、4、8、16、32、64、128、256

          /*HCLK=SYSCLK*/

          RCC_HCLKConfig(RCC_SYSCLK_Div1);//沒分頻

          第五步:設(shè)置APB2的預(yù)分頻系數(shù),來(lái)確定PCLK2頻率。預(yù)分頻系數(shù)可以是1、2、4、8、16

          /*PCLK2=HCLK*/

          RCC_PCLK2Config(RCC_HCLK_Div1);//沒分頻

          第六步:設(shè)置APB1的預(yù)分頻系數(shù),來(lái)確定PCLK1頻率。預(yù)分頻系數(shù)可以是1、2、4、8、16

          /*PCLK1=HCLK/2*/

          RCC_PCLK1Config(RCC_HCLK_Div2);//2分頻

          第七步:設(shè)置PLL的時(shí)鐘源,以及PLL的倍頻系數(shù),來(lái)確定PLLCLK頻率。

          /*PLLCLK=8MHz*9=72MHz*/

          RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);

          第八步:使能PLL。將RCC_CR的PLLON位置1。

          /*EnablePLL*/

          RCC_PLLCmd(ENABLE);

          如果PLL鎖定后,硬件會(huì)將RCC_CR的PLLRDY位置1。

          第九步:等待PLL鎖定。

          /*WaittillPLLisready*/

          while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET){}

          第十步:選擇PLL作為SYSCLK(系統(tǒng)時(shí)鐘源)

          /*SelectPLLassystemclocksource*/

          RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

          第十一步:將程序中用到的外設(shè)時(shí)鐘打開,統(tǒng)一都放在此處。

          例如:將GPIO外設(shè)時(shí)鐘打開。

          /* Enable GPIOC clock */
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

          RCC_Configuration函數(shù)具體代碼如下:

          /*******************************************************************************
          * Function Name : RCC_Configuration
          * Description : Configures the different system clocks.
          * Input : None

          * Return : None
          *******************************************************************************/
          void RCC_Configuration(void)
          {
          ErrorStatus HSEStartUpStatus;

          /* RCC system reset(for debug purpose) */
          RCC_DeInit();

          /* Enable HSE */
          RCC_HSEConfig(RCC_HSE_ON);

          /* Wait till HSE is ready */
          HSEStartUpStatus = RCC_WaitForHSEStartUp();

          if(HSEStartUpStatus == SUCCESS)
          {
          /* Enable Prefetch Buffer */
          FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

          /* Flash 2 wait state */
          FLASH_SetLatency(FLASH_Latency_2);

          /* HCLK = SYSCLK */
          RCC_HCLKConfig(RCC_SYSCLK_Div1);

          /* PCLK2 = HCLK */
          RCC_PCLK2Config(RCC_HCLK_Div1);

          /* PCLK1 = HCLK/2 */
          RCC_PCLK1Config(RCC_HCLK_Div2);

          /* 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) {}

          /* Enable GPIOC clock */
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
          }
          }



          關(guān)鍵詞: STM32F103xRCC寄存器配

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();