STM32庫的理解

2021-07-22 04:27:20 字數 807 閱讀 5065

1、條件編譯的作用是避免重複包含

2、暫存器說白了就是記憶體,對暫存器的操作就是對記憶體的操作

3、51微控制器對暫存器是直接操作的,而stm32則是間接操作,如下圖

明白了以上三點,我們就可以來揭開庫的那層神秘的面紗了

因為我們對暫存器的操作,即對記憶體的操作,是間接的。是通過庫函式來實現的,也就是說,我們偉大的庫函式才是直接操作記憶體的舵手。我們要做的只是呼叫庫函式介面就ok了,是不是很簡單。

但是,我們還要明白,庫函式的這個介面是怎麼給出來的,中間都有哪些主要的內容。

簡單來說,就3個內容:

第一,宣告外設暫存器的結構體。說明乙個外設的記憶體安裝邏輯劃分是怎麼劃分的,比方說,你有一畝田,一畝田哪些地方種什麼糧食你要定好,比如一畝田左右分兩半,左邊種花生,右邊種玉公尺。以後你有三畝田,也是這樣的邏輯劃分。

第二,記憶體對映,說白了就是起名字。村里給你分5畝田地,你根據需求分成了兩份,乙份2畝,乙份3畝。2畝的你起個名字,「種給大兒子的」;3畝的你也起個名字,「種給小兒子」的。這個起名字,就是記憶體映**。

第三,型別強制轉換成結構體指標,目的是以後通過指標去訪問記憶體的某一部分更加簡單快捷。你將「種給大兒子的」這塊地的位址取出來,比如說(東經115度,北緯34度),並且這些田地都是安裝第一步的規劃,每一畝左邊花生、右邊玉公尺的結構種植。再將這個位址起個好聽的名字,比如說:大兒子。以後要找大兒子的玉公尺,我們就很容易找到了:大兒子->玉公尺。

好了,庫的知識大概就總結這麼多,僅供參考。

stm32之GPIO的理解

寫這個部落格著重縷清自己的思路,對基礎的東西有個更好的理解。gpiox crh 與gpiox crl 可以配置gpio的各種模式,進行初始化。gpiox bsrr 32位暫存器,可以寫入或清除1 0 gpiox idr 低16位暫存器,讀取io的電平 gpiox odr 低16位暫存器,寫入io的電...

stm32 中位址的理解

stm32的中位址是按bit,byte,還是word作為單位的?例如0x8000000,它後面的單位是什麼?byte 為什麼有的位址是按照uint16 t,有的是按照uint32 t,這個是為什麼?為什麼有的位址是按照uint16 t,有的是按照uint32 t,這個是為什麼?define flas...

STM32韌體庫模版

開發工具 keil4 剛開始用這個庫的時候很無助,因為第一次用韌體庫 以下是我建立模版的步驟和注意事項 1.解壓韌體庫後先觀察目錄的整體結構,可以知道韌體庫裡面要弄出來的東西是libraries目錄,project目錄是韌體庫的應用,可以為今後開發專案做參考。2.現在建立乙個keil4的新工程,規劃...