怎麼知道分配了多大的系統時鐘(STM32f103)

2021-10-18 10:41:05 字數 1406 閱讀 3702

秘密都在systeminit()函式裡

system_stm32f10x.c中定義了:

具體的函式呼叫順序:①startup_stm32f10x_hd.s(啟動檔案)→②systeminit()→③setsysclock ()→④setsysclockto72()

2,進入systeminit()函式:

由於未定義stm32f10x_cl,stm32f10x_ld_vl等,所以直接跳至225行執行

3,執行setsysclock函式

由於定義的是#define sysclk_freq_72mhz  72000000,所以會選擇setsysclockto72()函式執行

4,執行setsysclockto72()函式

由於未定義stm32f10x_cl,所以直接跳至885行執行

跳出setsysclockto72()函式

跳出setsysclock()函式

跳出systeminit()函式

說明:執行完**的885行至887行時,便已完成將系統時鐘設定為72mhz。

至此,基本配置已經完成,配置的時鐘如下:

sysclk(系統時鐘) = 72mhz(系統最高允許時鐘)

ahb匯流排時鐘   = 72mhz(ahb最高允許時鐘)

apb1匯流排時鐘 = 36mhz(apb1最高允許時鐘)  tim2 3 4 5 6 7

apb2匯流排時鐘 = 72mhz(apb2最高允許時鐘)  tim1

hsi:上電預設啟動,因精度不高所以先不採用,以後如果需要再使用

hse:外部高速時鐘,系統時鐘一般採用它,經過pll倍頻作為系統同時鐘

lse:外部低速時鐘,一般專門用於rtc,等到rtc模組時再使用

lsi:內部低速時鐘,精度不高,一般用於iwdgclk

Ext 檔案系統支援多大空間怎麼算

在作業系統中,檔案系統都是針對分割槽而言的,乙個磁碟必須先分割槽才能格式化檔案系統 即使你將磁碟所有容量劃分乙個分割槽 格式檔案系統後才能掛載使用,此時就必須知道乙個檔案系統到底支援多大的分割槽大小。注 目前我們以block大小為4kb計算,4kb是我們最常用的乙個值了。32bit的塊索引空間 就是...

c 類的成員函式在定義物件前分配了儲存空間嗎?

對於一般的類 非靜態 來說,在定義類但還未建立物件的時候,類的所有成員 包括變數和函式 都占用著 記憶體空間 準確地說占用著指令 區 但不占用堆疊空間 而建立物件的時候,會根據物件的型別占用堆疊的空間 用傳統模式建立物件會占用棧空間,用引用 new模式建立物件會占用堆空間,同時引用會儲存在棧裡 對於...

malloc最多能分配多大的記憶體空間?

malloc的全稱是memory allocation,中文叫動態記憶體分配,用於申請一塊連續的指定大小的記憶體塊區域以void 型別返回分配的記憶體區域位址,當無法知道記憶體具體位置的時候,想要繫結真正的記憶體空間,就需要用到動態的分配記憶體。void 型別表示未確定型別的指標。c,c 規定,vo...