宏定义结构体指针类型:
GPIO_Set(GPIOB,PIN0|PIN1,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PB0,PB1设置
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
GPIO_TypeDef结构体只表示对该结构体申明,而((GPIO_TypeDef *) GPIOB_BASE)表示将其强制转换为指针类型(((GPIO_TypeDef *) 类似int),那么这个时候GPIOB就是指针了.所以程序里面你才敢用GPIOB->CRL。
疑问:((GPIO_TypeDef *) GPIOB_BASE)中((GPIO_TypeDef *)后面有的有空格有的则没有,不影响使用么?一般int a,u32 b中间都有个空格的。????