總 :STM32——HAL庫總結-CSDN博客
芯片資料:
STM32F1系列參考手冊-V10(中)
STM32F103ZET6(English)
一、寄存器基礎
1.1 簡介
單片機內部的控制機構。
像空氣開關控制電路一樣的原理,打開關閉某個開關,來控制某個電路,實現什么功能。
2.2 寄存器類型
二、寄存器映射
2.1 簡介
例如:
其實就是C語言的(unsigned int)轉指針。
2.2 存儲器映像
STM32F1系列參考手冊-V10(中)
STM32 一組IO 16個【PA0~PA15】,51單片機一組IO 8個。
2.3 寄存器解讀
地址偏移是針對外設來說的。也就是說偏移量 0x0C是針對此物理地址的偏移值。
位功能在手冊中會有具體描述。
2.4 寄存器賦值
2.4.1 直接賦值
2.4.2 宏名定義
2.5 寄存器地址計算
2.5.1 總線基地址
總線基地址就是存儲器映像實際地址。
存儲器映像中 APB1基地址:
STM32F1系列參考手冊-V10(中)
APB1基地址,也叫外設基地址,此可由memory map查看:
STM32F103ZET6(English)
2.5.2 GPIO外設基地址
2.5.2.1 GPIOA 寄存器地址
2.5.3 寄存器地址確認
2.6 *結構體映射寄存器*
結構體成員是連續分配內存的。使用相同類型的成員大小是相同的,不會被字節對齊有空位。那么也就是說,(unsigned int)強轉的結構體指針可指向4byte大小的成員,也就是連續的寄存器(4byte)地址內容。
映射的核心理念還是 指針與(unsigned int)轉換以及解引用。