99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

STM8S時鐘系統(tǒng)的時鐘初始化函數(shù)實現(xiàn)

牽手一起夢 ? 來源:eefocus ? 作者:eefocus ? 2020-01-24 17:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM8S具有一個強大的時鐘系統(tǒng),內(nèi)部提供一個高速16M的RC振蕩器,和一個低速128K的RC振蕩器。

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

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

STM8S時鐘系統(tǒng)的時鐘初始化函數(shù)實現(xiàn)

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

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

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

以下是初始化系統(tǒng)時鐘的函數(shù)(默認使用16M內(nèi)部RC):

void Set_HSISpeed(void)

{

//啟用內(nèi)部高速晶振且無分頻16MHz

CLK_ICKR|=0x01; //開啟內(nèi)部HSI

while(?。–LK_ICKR&0x02));//HSI準備就緒

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

CLK_CKDIVR=0x00; //HSI不分頻

}

如果需要切換時鐘,需要先等待時鐘穩(wěn)定:

void Switch_LSISpeed(void)

{

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

CLK_ICKR|=0x08; //開啟LSI

while(?。–LK_ICKR&0x10));//HSI準備就緒

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

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

CLK_CKDIVR=0x00; //LSI不分頻

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

}

void Switch_HSISpeed(void)

{

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

CLK_ICKR|=0x01; //開啟內(nèi)部HSI

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

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

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

CLK_CKDIVR=0x00; //HSI不分頻

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

}

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

void Set_CPU_Full_Speed(void)

{

CLK_CKDIVR=0x00; //HSI不分頻

}

void Set_CPU_Low_Speed(void)

{

CLK_CKDIVR=0x07; //HSI 128分頻

}

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

責任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17116

    瀏覽量

    184438
  • 振蕩器
    +關(guān)注

    關(guān)注

    28

    文章

    4017

    瀏覽量

    140888
  • 時鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1902

    瀏覽量

    133255
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    定義IO初始化結(jié)構(gòu)體

    由上述IOPORT相關(guān)功能的枚舉類型我們可以知道,在對IOPORT模塊進行初始化時需要根據(jù)情況配置它們。因此我們定義一個IOPORT初始化的結(jié)構(gòu)體類型IOPORT_Init_t,它的成員包括了由上述所有枚舉類型所聲明的變量,因此該結(jié)構(gòu)體類型的變量可以包含IOPORT的相關(guān)
    的頭像 發(fā)表于 07-16 16:26 ?570次閱讀

    NVMe高速傳輸之擺脫XDMA設計之七:系統(tǒng)初始化

    直接采用PCIe實現(xiàn)NVMe功能,它的系統(tǒng)初始化流程主要分為鏈路訓練、PCIe 初始化和 NVMe 初始化, 分別
    發(fā)表于 07-04 09:14

    IM 系列設備過載保護機制下界面初始化中斷的底層邏輯與解決方案

    一、過載保護機制與界面初始化的關(guān)聯(lián)基礎 IM 系列設備的過載保護機制是保障設備安全運行的核心功能,其通過傳感器實時采集設備運行參數(shù),如電流、電壓、溫度、系統(tǒng)資源占用率等。一旦這些參數(shù)超出預設閾值
    的頭像 發(fā)表于 06-27 09:58 ?82次閱讀

    請問init_ipc_shm() 是否只初始化一次?

    通過在 S32G A 核上使用 C(或 C)創(chuàng)建多個項目來開發(fā) IPCF 功能時,是init_ipc_shm()允許初始化已配置的共享資源的函數(shù)僅一次在運行時?如果是,系統(tǒng)級別的最佳架
    發(fā)表于 03-25 08:05

    stm32h7s78 rcc pll2時鐘使能失敗的原因?

    使用的板卡是 stm32h7s78-dk,啟動流程是 boot + flash app 的方式,boot 參考的 xip 示例,xip 時鐘綁定在 hclk 上。 問題 在 app 代碼中,初始化
    發(fā)表于 03-14 10:33

    DLPC910初始化即INIT_ACTIVE拉低,是否與從APP FPGA傳輸來的信號有關(guān)?

    中必須有A.B兩路,如果單純傳輸啊CD兩路,系統(tǒng)并不會初始化。好像A B 兩路時鐘有優(yōu)先級。我不知道這是我設計的問題還是確實必須傳輸A B兩路時鐘 2、DLPC910手冊中還寫到,
    發(fā)表于 02-26 06:04

    EE-359:ADSP-CM40x啟動時間優(yōu)化和器件初始化

    電子發(fā)燒友網(wǎng)站提供《EE-359:ADSP-CM40x啟動時間優(yōu)化和器件初始化.pdf》資料免費下載
    發(fā)表于 01-13 16:33 ?0次下載
    EE-359:ADSP-CM40x啟動時間優(yōu)化和器件<b class='flag-5'>初始化</b>

    EE-88:使用21xx編譯器在C中初始化變量

    電子發(fā)燒友網(wǎng)站提供《EE-88:使用21xx編譯器在C中初始化變量.pdf》資料免費下載
    發(fā)表于 01-13 15:54 ?0次下載
    EE-88:使用21xx編譯器在C中<b class='flag-5'>初始化</b>變量

    STM32CubeMX生成的代碼,是怎樣的HAL架構(gòu)?

    需要注意,CubeMX只是一個初始化工具,它只是幫你完成了HAL庫外設和時鐘初始化,具體程序的編寫還需要查閱HAL庫的說明,使用相關(guān)函數(shù)實現(xiàn)
    的頭像 發(fā)表于 01-01 21:01 ?829次閱讀
    STM32CubeMX生成的代碼,是怎樣的HAL架構(gòu)?

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結(jié)合提供了強大的存儲解決方案。然而,不斷電初始化失效問題可能會導致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與SD NAND集成時可能遇到的初始化問題,并提供專
    的頭像 發(fā)表于 12-11 10:51 ?966次閱讀
    STM32F407 MCU使用SD NAND?不斷電<b class='flag-5'>初始化</b>失效解決方案

    快速學習全志T113-S3 開發(fā)板時鐘操作

    前言:Linux將時鐘分為系統(tǒng)時鐘(SystemClock)和硬件時鐘(RealTimeClock,簡稱RTC)兩種。系統(tǒng)
    的頭像 發(fā)表于 12-06 01:04 ?1475次閱讀
    快速學習全志T113-<b class='flag-5'>S</b>3 開發(fā)板<b class='flag-5'>時鐘</b>操作

    基于旋轉(zhuǎn)平移解耦框架的視覺慣性初始化方法

    精確和魯棒的初始化對于視覺慣性里程計(VIO)至關(guān)重要,因為不良的初始化會嚴重降低姿態(tài)精度。
    的頭像 發(fā)表于 11-01 10:16 ?976次閱讀
    基于旋轉(zhuǎn)平移解耦框架的視覺慣性<b class='flag-5'>初始化</b>方法

    TMS320C6000 McBSP初始化

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 McBSP初始化.pdf》資料免費下載
    發(fā)表于 10-26 10:10 ?1次下載
    TMS320C6000 McBSP<b class='flag-5'>初始化</b>

    深度解析linux時鐘系統(tǒng)

    linux內(nèi)核中實現(xiàn)了一個CLK子系統(tǒng),用于對上層提供各模塊(例如需要時鐘信號的外設,USB等)的時鐘驅(qū)動接口,對下層提供具體SOC的時鐘
    的頭像 發(fā)表于 09-29 16:46 ?1318次閱讀
    深度解析linux<b class='flag-5'>時鐘</b>子<b class='flag-5'>系統(tǒng)</b>

    瀚海微SD NAND應用之SD協(xié)議存儲功能描述2 初始化命令

    初始化和識別過程: 總線激活后,主機啟動卡初始化和識別過程。 初始化過程從SD SEND OP COND (ACMD41)開始,通過設置其操作條件和OCR中的HCS位。HCS (Host
    的頭像 發(fā)表于 07-22 10:54 ?734次閱讀
    瀚海微SD NAND應用之SD協(xié)議存儲功能描述2 <b class='flag-5'>初始化</b>命令