HAL库的HAL_GPIO_ReadPin()使用总结

 

 

HAL库readpin的函数使用起来有以下总结:

当一个pin脚设置成OUTPUT的时候,那么使用HAL_GPIO_ReadPin()函数能不嫩读取出这个pin脚的值呢???

很多人都认为HAL_GPIO_ReadPin()只是用来读取配置为INPUT模式的pin脚的,其实它也可以读取配置为OUTPUT的pin脚状态;

但是,这里加个但是,当pin配置output时,想要读取pin的状态时,对于推挽PP和开漏OD模式是有区别的;

当配置为GPIO_MODE_OUTPUT_PP时,使用HAL_GPIO_ReadPin()可以正确读取出这个pin的状态值;

当配置为GPIO_MODE_OUTPUT_OD时,使用HAL_GPIO_ReadPin()是读取不到这个pin的状态值的,无论这个pin设置为SET还是reset,读取出来都是reset的状态;

所以在使用时要注意这一点。

下面附上HAL库里这个函数的源代码:

/**
  * @brief  Read the specified input port pin.
  * @param  GPIOx where x can be (A..H) to select the GPIO peripheral for STM32L4 family
  * @param  GPIO_Pin specifies the port bit to read.
  *         This parameter can be any combination of GPIO_Pin_x where x can be (0..15).
  * @retval The input port pin value.

你可能感兴趣的:(STM32,驱动,嵌入式)