GPIO初始化
1.首先初始化RCC时钟。一般的GPIO设备都在总线APB2上(可在源文件中查看),用函数 RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) 初始化时钟即可。第一个参数为相应设备,如 RCC_APB2Periph_GPIOA ;第二个参数有两个取值,ABLE和ENABLE。打开时钟,选择ENABLE。
2.定义结构体变量。STM32中的初始化多用结构体变量。GPIO_InitTypeDef 为结构体类型,一般命名为GPIO_InitStructure。该结构体有三个成员,分别为 .GPIO_Mode 、 .GPIO_Pin 、.GPIO_Speed,三个成员分别对应模式、端口、速度。可以在源文件中查看取值。
3.GPIO初始化。函数GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)用于GPIO的初始化。第一个变量为要用的GPIO,例如GPIOA、GPIOB等;第二个参数为一个GPIO结构体的指针,如&GPIO_InitStructure。

注:
1.结构体定义一次,可以重复使用。例如对结构体的每一个成员赋值并初始化后,可以重新对结构体的成员赋值并再次定义。
2.对于定义GPIO多个端口的,可以使用或运算,例如 ( GPIO_Pin_0 | GPIO_Pin_0 )。这样同时定义了两个端口。