所有暫存器都需要時鐘才能配置吧,暫存器是由d觸發器組成的,只有送來了時鐘,觸發器才能被改寫值。
任何mcu的任何外設都需要有時鐘,8051也是如此;stm32為了讓使用者更好地掌握功耗,對每個外設的時鐘都設定了開關,讓使用者可以精確地控制,關閉不需要的裝置,達到節省供電的目的。
51微控制器不用配置io時鐘,只是因為預設使用同乙個時鐘,這樣是方便,但是這樣的話功耗就降低不了。
例如,某個功能不需要,但是它還是一直執行。
stm32需要配置時鐘,就可以把不需要那些功能的功耗去掉。
當你想關閉某個io的時候,關閉它想對應的時鐘使能就是了,不過在51裡面,在使用io的時候是沒有設定io的時鐘的,還有在stm32中,有外部和內部時鐘之分,關於時鐘等好好研究
arm的晶元都是這樣,外設通常都是給了時鐘後,才能設定它的暫存器(即才能使用這個外設)。stm32、lpc1***等等都是這樣。
這麼做的目的是為了省電,使用了所謂時鐘門控的技術。
這也屬於電路裡同步電路的範疇:同步電路總是需要1個時鐘。
STM32系統時鐘為什麼沒有定義呢
對於使用3.5版本庫開發的stm32學習者 有時候不清楚為什麼沒有時鐘定義 那麼我們就簡單的講解下吧 1,函式從啟動檔案開始執行 彙編檔案 2,若是hd.s 請看151行ldr r0,systeminit 3,我們按f12跳到systeminit 中 包含在system stm32f10x.c 4,...
STM32時鐘配置
大家都知道在使用微控制器時,時鐘速度決定於外部晶振或內部rc振盪電路的頻率,是不可以改變的。而arm的出現打破了這一傳統的法則,可以通過軟體隨意改變時鐘速度。這一出現讓我們的設計更加靈活,但是也給我們的設計增加了複雜性。為了讓使用者能夠更簡單的使用這一功能,stm32的庫函式已經為我們設計的更加簡單...
STM32的時鐘配置隨筆
從技術文件上得到stm32時鐘源有三種,hsi 振盪器時鐘 hse 振盪器時鐘 主 pll時鐘,由於每個時鐘的工作特性的差異,若想將系統時鐘設定為最高頻時需使用pll將基礎時鐘源進行倍頻。由於使用外部晶振倍頻精確度會比內部 時鐘高很多,所以一般都是使用外部晶振,這跟我們使用庫開發是一樣的原理,所以一...