typedef struct{
//略
}gpio_typedef;
typedef struct{
//略
}Gpio_Init_Typedef;
#define GPIOF ((gpio_typedef *)GPIOF_BASE)
void Gpio_Init(gpio_typedef* GPIOx, Gpio_Init_Typedef* Gpio_Init_struct )
{
//略
}
void Gpio_Init_Start(void)
{
Gpio_Init_Typedef Gpio_Init_struct;
Gpio_Init_struct.Gpio_Pin = GPIO_Pin_6;
Gpio_Init_struct.MODER = Gpio_Mode_Out;
Gpio_Init_struct.OTYPER = Gpio_Otyper_PP;
Gpio_Init_struct.OSPEEDR = Gpio_Speed_2M;
Gpio_Init_struct.PUPDR = Gpio_Pupd_PU;
Gpio_Init(GPIOF, &Gpio_Init_struct);
}
Gpio_Init(GPIOF, &Gpio_Init_struct);
GPIOF已经定义为一个结构体指针,保存GPIOF_BASE的地址,传进去就是地址;
Gpio_Init_struct是个结构体,但传进函数内也要是个地址,所以用&取这个结构体地址。