为什么第一段代码括号里的"&InitStruct"要加‘&’表示地址,GPIOH在第二段代码里不也是结构指针的意思吗?
GPIO_Init(GPIOH, &InitStruct);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
typedef struct
{
uint32_t GPIO_Pin; /*!< 选择要配置的GPIO引脚
可输入 GPIO_Pin_ 定义的宏 */
GPIOMode_TypeDef GPIO_Mode; /*!< 选择GPIO引脚的工作模式
可输入 GPIOMode_TypeDef 定义的枚举值*/
GPIOSpeed_TypeDef GPIO_Speed; /*!< 选择GPIO引脚的速率
可输入 GPIOSpeed_TypeDef 定义的枚举值 */
GPIOOType_TypeDef GPIO_OType; /*!< 选择GPIO引脚输出类型
可输入 GPIOOType_TypeDef 定义的枚举值*/
GPIOPuPd_TypeDef GPIO_PuPd; /*!<选择GPIO引脚的上/下拉模式
可输入 GPIOPuPd_TypeDef 定义的枚举值*/
}GPIO_InitTypeDef;
/*定义GPIOA-H 寄存器结构体指针*/
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE)
#define GPIOE ((GPIO_TypeDef *) GPIOE_BASE)
#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE)
#define GPIOG ((GPIO_TypeDef *) GPIOG_BASE)
#define GPIOH ((GPIO_TypeDef *) GPIOH_BASE)