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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > stm32f105/107互聯(lián)性時鐘配置參考函數(shù)

          stm32f105/107互聯(lián)性時鐘配置參考函數(shù)

          作者: 時間:2016-11-17 來源:網(wǎng)絡(luò) 收藏

          /************************************************************************
          ** Function Name : RCC_Configuration
          ** Description : 配置時鐘
          ** Input Parameters :

          ** Output Parameters :
          = 1 : 保存成功
          = 0 : 保存失敗
          note :
          ************************************************************************/

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

          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)
          {
          // Flash 2 wait state
          FLASH_SetLatency(FLASH_Latency_2);
          // Enable Prefetch Buffer
          FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

          // HCLK = SYSCLK AHB時鐘為系統(tǒng)時鐘 72MHz
          RCC_HCLKConfig(RCC_SYSCLK_Div1);

          // PCLK2 = HCLK APB2時鐘為系統(tǒng)時鐘 72MHz
          RCC_PCLK2Config(RCC_HCLK_Div1);

          // PCLK1 = HCLK/2 APB1時鐘為系統(tǒng)時鐘 72MHz/2=36MHz
          RCC_PCLK1Config(RCC_HCLK_Div2);

          RCC_PREDIV2Config(RCC_PREDIV2_Div2);// 8M / 2 = 4M

          RCC_PLL2Config(RCC_PLL2Mul_10); // 4M * 10 = 40M

          RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2,RCC_PREDIV1_Div5);// 40M / 5 = 8M
          // Enable PLL2 wait stable
          RCC_PLL2Cmd(ENABLE);
          while((RCC->CR & RCC_CR_PLL2RDY) == 0)
          {
          }
          RCC_PLLConfig(RCC_PLLSource_PREDIV1,RCC_PLLMul_9); // PLL 8M * 9 = 72 M


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

          RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO |
          RCC_APB2Periph_GPIOA |
          RCC_APB2Periph_GPIOB |
          RCC_APB2Periph_GPIOC |
          RCC_APB2Periph_GPIOD |
          RCC_APB2Periph_USART1 |
          RCC_APB2Periph_SPI1
          , ENABLE);


          RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG |
          RCC_APB1Periph_USART2 |
          RCC_APB1Periph_SPI2 |
          RCC_APB1Periph_USART3 |
          RCC_APB1Periph_TIM3
          //RCC_APB1Periph_TIM4 |
          // RCC_APB1Periph_CAN1 |
          // RCC_APB1Periph_CAN2
          , ENABLE);
          #if EnableWdt
          RCC_LSICmd(ENABLE);//打開LSI
          while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY)==RESET);//等待直到LSI穩(wěn)定
          #endif
          }



          評論


          技術(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); })();