Common format for initializing GPIO:
GPIO_InitTypeDef GPIO_InitStructure; // Reference two structures
// GPIO is a peripheral mounted on the APB2 bus, using RCC_APB2PeriphClockCmd () to achieve.
RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA |
RCC_APB2Periph_GPIOD, the ENABLE); // enable PA, PD port clock
// set pin mode, the speed
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_2; // PA.8, PD.2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // Push-pull output
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // Speed 50MHz
GPIO_Init (GPIOA, & GPIO_InitStructure); // Configure GPIO according to the setting parameters
GPIO_SetBits (GPIOA, GPIO_Pin_8); // Output 1
//GPIO_ResetBits (GPIOA, GPIO_Pin_8); // Output 0
GPIO_Init (GPIOD, & GPIO_InitStructure); // Configure GPIO according to setting parameters
GPIO_SetBits (GPIOD, GPIO_Pin_8); // Output 1