STM32读具体GPIOx的某一位是1还是0

 1 /**
 2   * @brief  Reads the specified input port pin.
 3   * @param  GPIOx: where x can be (A..G) to select the GPIO peripheral.
 4   * @param  GPIO_Pin:  specifies the port bit to read.
 5   *   This parameter can be GPIO_Pin_x where x can be (0..15).
 6   * @retval The input port pin value.
 7   */
 8 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
 9 {
10   uint8_t bitstatus = 0x00;
11   
12   /* Check the parameters */
13   assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
14   assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); 
15   
16   if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET)
17   {
18     bitstatus = (uint8_t)Bit_SET;
19   }
20   else
21   {
22     bitstatus = (uint8_t)Bit_RESET;
23   }
24   return bitstatus;
25 }