從開始接觸51微控制器,到現在開始轉型學習功能更加強大的stm32f407系列,
學習過程中引入了庫函式及相應操作,當時趕著進度做點東西出來,有點不求甚解。現在返回來求索:相比於原來51微控制器的暫存器,32系列的暫存器無論是個數還是實現功能時多個暫存器之間的呼叫配合,使用難度都高了不少,所以有了庫函式和相應的韌體庫來減少難度。
先說一下韌體庫(這個我們最開始安裝完mdk缺了它總是各種報錯的東西)和相應庫函式:
韌體庫這邊時首先將各個裝置所有暫存器的配置字進行預定義,然後封裝在結構體或者列舉變數中,等到使用者呼叫相關庫函式時,會根據使用者傳入的引數從這些已經封裝好的結構體或者列舉變數中取出與之對應的配置字,最後寫入相應暫存器中完成對底層暫存器的配置
其次對比一下庫函式操作和暫存器操作:
從上面簡單介紹的運作方式不難看出,stm32的韌體庫函式對於相關程式開發人員來說可以說時相當便利了。只需要填寫或者替換相應的引數就可以在完全不關心底層暫存器的前提下完成相關暫存器的配置,通用性和易用性可以說很不錯了。但與此同時我們也應該注意到庫函式的通用易用以及安全時付出了加大**量的代價,而且這個過程所增加的邏輯判斷**也會造成一定的額外時間消耗,所以在對時間要求比較苛刻的應用場合需要評估庫函式使用對程式執行時間造成的影響,或者說可以通過用暫存器操作替換相應的庫函式操作來達到優化。
至於比較庫函式和暫存器操作的**部分,我就不貼了,網上蠻多的,分享也算是記錄下這點庫函式操作底層如何實現對暫存器操作或者說如何做暫存器封裝的就好。
STM32庫函式和暫存器的區別
庫函式版和暫存器版的系統時鐘設定的區別 1.庫函式的目的是讓使用者應用的,而暫存器更加原始 庫函式的系統時鐘是預設設定的,且放在啟動檔案裡。而暫存器版的系統時鐘是stm32 clock init 336,8,2,7 2.庫函式的快捷的,但不是每個晶元都有的 暫存器是複雜的,但是每個晶元廠商都有提供系...
stm32的按鍵掃瞄 操作暫存器 庫函式
本例將實現stm32的按鍵掃瞄功能。操作暫存器 stm32的i o口作為輸入使用時,是通過讀取gpiox idr 暫存器的內容來讀取i o口狀態的。idr暫存器各位描述如下 由於systick不能像庫函式那樣方便的產生中斷,通過查詢systick狀態位後,再查詢各管腳狀態反而更為不方便,所以和庫函式...
Stm32用暫存器還是庫函式
首先放幾段的觀點 1 我當年初學的時候也糾結過,後來選擇了先學習暫存器操作,後來慢慢的把庫函式也學會了,其實都不難。完全可以兩個都學,只是你現在選乙個先下手而已。建議你先學暫存器操作,然後學庫,以後工作中盡量使用庫。先學暫存器是因為你從51過渡過來,51也是直接控制暫存器,趁你還沒有忘記怎麼操作暫存...