stm32 系統預設時鐘問題

2021-09-28 23:05:14 字數 687 閱讀 6282

今天在看正點原子的程式時,發現程式中沒有配置時鐘,但是定時器竟然可以用。

剛開始以為是stm32預設時鐘選擇為72mhz,但是又想到系統時鐘是需要**配置的。

想到可能是在啟動檔案中系統呼叫了某些函式,查了一下,果然是這樣,在startup_stm32f10x_hd.s檔案中,有這麼一段

; reset handler

reset_handler proc

export reset_handler [weak]

import __main

import systeminit

ldr r0,

=systeminit

blx r0

ldr r0,

=__main

bx r0

endp

在程式在進入到main函式之前,先要執行systeminit,而systeminit這個函式一般都是按照72mhz進行配置的。

之前我的程式都是在主函式中呼叫systeminit函式,現在看來,只需將systeminit的相關引數做修改,就不必在主函式中呼叫,但是這樣的話就有可能出現:程式移植過程中,由於硬體晶振發生變化,發生的程式問題,很有可能前期忽略掉時鐘的問題。

我覺得還是在主函式中呼叫一下好。

STM32系統時鐘

1 參考資料 stm32f1開發指南 庫函式版本 4.3小節 時鐘系統 stm32中文參考手冊v10 第六章 復位和時鐘控制 rcc 2 時鐘系統知識總結 1 stm32有5個時鐘源 hsi hse lsi lse pll hsi是高速內部時鐘,rc振盪器,頻率為8mhz,精度不高 hse是高速外部...

stm32系統時鐘

hsi 約等於8mhz rc振盪器產生的時鐘 hse 外部時鐘 css 如果檢測到外部時鐘的損壞,自動切換到hsi 系統時鐘和rtc時鐘 均有三個 systick定時器 簡單的定時器,常用來做延時和心跳時鐘 24位的倒計時定時器 ctrl暫存器 其實滴答定時器很簡單,就是設定初值,然後延遲,最後就是...

STM32之系統時鐘

使用stm32已經有一段時間,為了快速完成任務習慣性在已有 的基礎上進行部分修改,而沒有仔細閱讀資料手冊,詳細分析引數設定的緣由。現將逐步將stm32的各部分內部結構一次進行細節的學習,今天進行stm32的時鐘部分。stm32f103系列時鐘最高可以至72mhz,時鐘 包括hse 外部高速時鐘 ls...