总 :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)转换以及解引用。