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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > stm32變更外部晶振時(shí)如何配置時(shí)鐘、以及HSI的使用

          stm32變更外部晶振時(shí)如何配置時(shí)鐘、以及HSI的使用

          作者: 時(shí)間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
          由于stm32的庫默認(rèn)是外部晶振8M的情況下實(shí)現(xiàn)的,所以配置串口波特率的時(shí)候也是按8M,包括主頻。
          如果采用外部晶振12M,配置時(shí)鐘為72MHZ。

          1)PLL倍頻這樣改:
          8M:
          RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);//8*9=72
          12M:
          RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);//12*6=72
          庫函數(shù):voidRCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul)
          例:RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6);

          2)stm32f10x.h中修改:
          8M:
          #define HSE_Value ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
          12M:
          #define HSE_Value ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
          接下來說一下內(nèi)部時(shí)鐘,內(nèi)部時(shí)鐘是由RC振蕩產(chǎn)生的,精度不高。用內(nèi)部時(shí)鐘產(chǎn)生的功耗更小,還可以節(jié)約印制板的空間,程序配置如下:
          void RCC_Configuration(void)
          {
          /* RCC system reset(for debug purpose) */
          RCC_DeInit();
          RCC_HSICmd(ENABLE); //打開內(nèi)部高速時(shí)鐘
          //等待HSI準(zhǔn)備好
          while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);
          FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //開啟FLASH預(yù)取指功能
          //FLASH時(shí)序控制
          //推薦值:SYSCLK = 0~24MHz Latency=0
          // SYSCLK = 24~48MHz Latency=1
          // SYSCLK = 48~72MHz Latency=2
          FLASH_SetLatency(FLASH_Latency_2);
          RCC_HCLKConfig(RCC_SYSCLK_Div1); //設(shè)置HCLK(AHB時(shí)鐘)=SYSCLK
          RCC_PCLK2Config(RCC_HCLK_Div1); //PCLK2(APB2) = HCLK
          RCC_PCLK1Config(RCC_HCLK_Div1); //PCLK1(APB1) = HCLK
          //PLL設(shè)置 SYSCLK/2 * 12 = 4*12 = 48MHz
          RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);
          //啟動(dòng)PLL
          RCC_PLLCmd(ENABLE);//如果PLL被用于系統(tǒng)時(shí)鐘,不能被DISABLE
          //等待PLL穩(wěn)定
          while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){;}
          //設(shè)置系統(tǒng)時(shí)鐘SYSCLK = PLL輸出
          RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
          //等待PLL成功用作于系統(tǒng)時(shí)鐘的時(shí)鐘源,并等待穩(wěn)定
          // 0x00:HSI作為系統(tǒng)時(shí)鐘
          // 0x04:HSE作為系統(tǒng)時(shí)鐘
          // 0x08:PLL作為系統(tǒng)時(shí)鐘
          while(RCC_GetSYSCLKSource() != 0x08);
          }



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