uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin)
{
if(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == 1)
{
//松手检测
while(GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == 1)
return 1;
}
// 按键未被按下,返回0
return 0;
}
-
uint8_t
:函数返回类型为无符号8位整数,表示按键扫描的结果。可能返回1,表示按键松开。
-
Key_Scan
:函数的名称,用于扫描按键状态。
-
(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
:函数的参数,其中 GPIO_TypeDef *GPIOx
表示 GPIO 端口类型,uint16_t GPIO_Pin
表示 GPIO 引脚号。
-
if (GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == 1)
:判断按键是否被按下,如果按下(输入为高电平),则进入条件判断。
-
while (GPIO_ReadInputDataBit(GPIOx, GPIO_Pin) == 1)
:进入一个循环,该循环在按键被按下的情况下一直执行。这是一个等待松手的过程。
-
return 1;
:在检测到按键被松开时,函数立即返回1,表示按键已经松开。
-
return 0;:
在未检测到按键按下,函数返回0,表示按键已经未被摁下。