声明:本文转载自http://blog.youkuaiyun.com/lan120576664/article/details/24203639
/**
* @brief Reads the specified GPIO input data pin.
* @param GPIOx : Select the GPIO peripheral number (x = A to I).
* @param GPIO_Pin : Specifies the pin number.
* @retval BitStatus : GPIO input pin status.
*/
BitStatus GPIO_ReadInputPin(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)
{
return ((BitStatus)(GPIOx->IDR & (uint8_t)GPIO_Pin));
}
以上是ST文件读取指定IO口电平原型。
如果你使用类似
if(GPIO_ReadInputPin(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7) == SET)
{
.....
}
这样的判断代码,你会发现永远的不到你想要的。

STM8库中的GPIO_ReadInputPin函数在判断IO输入引脚电平时存在错误,由于BitStatus枚举类型与int类似,导致无法直接进行布尔比较。建议将代码调整为正确方式进行IO电平判断。
最低0.47元/天 解锁文章
2355





