• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > stm8s開發(四) CLOCK的使用:時鐘控制!

    stm8s開發(四) CLOCK的使用:時鐘控制!

    作者: 時間:2017-09-14 來源:網絡 收藏

      STM8S具有一個強大的時鐘系統,內部提供一個高速16M的RC振蕩器,和一個低速128K的RC振蕩器。

    本文引用地址:http://www.czjhyjcfj.com/article/201709/364352.htm

      時鐘控制器功能強大而且靈活易用。其目的在于使用戶在獲得最好性能的同時,亦能保證消耗的功率最低。用戶可獨立地管理各個時鐘源,并將它們分配到CPU或各個外設。主時鐘和CPU時鐘均帶有預分頻器。具有安全可靠的無故障時鐘切換機制,可在程序運行中將主時鐘從一個時鐘源切換到另一個時鐘源。

      一般來說,時鐘樹是配置時鐘、控制時鐘的依據,所以需要掌握,以下是STM8S時鐘樹圖:

      從圖中看出,一共有3個時鐘源,分別是HSE(高速外部時鐘)、HSI(高速內部時鐘)、LSI(低速內部時鐘)。

      HSE(高速外部時鐘)可通過外部晶振提供,HSI(高速內部時鐘)為16M的RC振蕩器,LSI(低速內部時鐘)為128K的RC振蕩器。

      高速時鐘(HSE和HSI)可以通過分頻器進行降頻。降頻過后的時鐘和原本的時鐘都可以通過Master Clock Switch進行選擇,

      以下是初始化系統時鐘的函數(默認使用16M內部RC):

      void Set_HSISpeed(void)

      {

      //啟用內部高速晶振且無分頻16MHz

      CLK_ICKR|=0x01; //開啟內部HSI

      while(!(CLK_ICKR&0x02));//HSI準備就緒

      CLK_SWR=0xe1; //HSI為主時鐘源

      CLK_CKDIVR=0x00; //HSI不分頻

      }

      如果需要切換時鐘,需要先等待時鐘穩定:

      void Switch_LSISpeed(void)

      {

      CLK_SWCR|=0x02; //開啟切換

      CLK_ICKR|=0x08; //開啟LSI

      while(!(CLK_ICKR&0x10));//HSI準備就緒

      CLK_SWR=0xd2; //LSR為主時鐘源

      while((CLK_SWCR & 0x01)==0x01);//等待切換完成

      CLK_CKDIVR=0x00; //LSI不分頻

      CLK_SWCR&=(~0x02); //關閉切換

      }

      void Switch_HSISpeed(void)

      {

      CLK_SWCR|=0x02; //開啟切換

      CLK_ICKR|=0x01; //開啟內部HSI

      while(!(CLK_ICKR&0x02));//HSI準備就緒

      CLK_SWR=0xe1; //HSI為主時鐘源

      while((CLK_SWCR & 0x01)==0x01);//等待切換完成

      CLK_CKDIVR=0x00; //HSI不分頻

      CLK_SWCR&=(~0x02); //關閉切換

      }

      如果想直接降頻,只需要設置始終分頻:

      void Set_CPU_Full_Speed(void)

      {

      CLK_CKDIVR=0x00; //HSI不分頻

      }

      void Set_CPU_Low_Speed(void)

      {

      CLK_CKDIVR=0x07; //HSI 128分頻

      }

      以上就是初始化時鐘的代碼,一般用于mian函數的第一句話,方便以后計算其他外設的時鐘頻率。

      附上在IAR環境下的項目工程,包括了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代碼。

      http://download.csdn.net/detail/devintt/9454188



    關鍵詞: stm8s CLOCK

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 汉川市| 济南市| 昌平区| 五大连池市| 库车县| 湄潭县| 阆中市| 定陶县| 威宁| 阜新市| 丹寨县| 金昌市| 沧州市| 固安县| 兴海县| 绥滨县| 枣强县| 合水县| 广丰县| 宁蒗| 长兴县| 汕头市| 五河县| 楚雄市| 东光县| 绥宁县| 湘潭县| 乌兰县| 曲松县| 吉林市| 社会| 塔河县| 贵阳市| 岗巴县| 沐川县| 四平市| 贵阳市| 洪洞县| 洞口县| 清远市| 沙湾县|