PinState:  specifies the value to be written to the selected bit. 
This parameter can be one of the GPIO_PinState enum 
values:  
  GPIO_PIN_RESET: to clear the port pin 
  GPIO_PIN_SET: to set the port pin 
  This function uses GPIOx_BSRR register to allow atomic 
read/modify accesses. In this way, there is no risk of an IRQ 
occurring between the read and the modify access. 
HAL_GPIO_TogglePin 
void HAL_GPIO_TogglePin (GPIO_TypeDef * GPIOx, uint16_t 
GPIO_Pin) 
Toggles the specified GPIO pins.  
  GPIOx:  where x can be (A..I) to select the GPIO peripheral. 
  GPIO_Pin:  Specifies the pins to be toggled. 
HAL_GPIO_LockPin 
HAL_StatusTypeDef HAL_GPIO_LockPin (GPIO_TypeDef * 
GPIOx, uint16_t GPIO_Pin) 
Locks GPIO Pins configuration registers.  
  GPIOx:  where x can be (A..I) to select the GPIO peripheral 
for STM32F2XX family 
  GPIO_Pin:  specifies the port bit to be locked. This parameter 
can be any combination of GPIO_PIN_x where x can be 
(0..15). 
  The locked registers are GPIOx_MODER, GPIOx_OTYPER, 
GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_AFRL and 
GPIOx_AFRH. 
  The configuration of the locked GPIO pins can no longer be 
modified until the next reset. 
HAL_GPIO_EXTI_IRQHandler 
void HAL_GPIO_EXTI_IRQHandler (uint16_t GPIO_Pin) 
This function handles EXTI interrupt request.  
  GPIO_Pin:  Specifies the pins connected EXTI line 
HAL_GPIO_EXTI_Callback 
void HAL_GPIO_EXTI_Callback (uint16_t GPIO_Pin) 
EXTI line detection callbacks.