对于STM32固件库中的地址强行地址转换
#define GPIOA ((GPIO_typedef *) GPIOA_BASE
此预处理将 GPIOA 强制转换成 GPIO_typedef 类型的结构体指针,默认指向了GPIOA_BASE的基地址。在调用->指向不同结构体成员时,指针就会根据成员变量类型的大小跳不同的步进,进而访问到不同的成员地址,对不同成员地址(其实就是GPIO的各功能寄存器)赋值处理就完成操作GPIO。
对于STM32固件库中的地址强行地址转换
#define GPIOA ((GPIO_typedef *) GPIOA_BASE
此预处理将 GPIOA 强制转换成 GPIO_typedef 类型的结构体指针,默认指向了GPIOA_BASE的基地址。在调用->指向不同结构体成员时,指针就会根据成员变量类型的大小跳不同的步进,进而访问到不同的成员地址,对不同成员地址(其实就是GPIO的各功能寄存器)赋值处理就完成操作GPIO。