GPIO再举例之反转按键
要求:实现按键反转
前提:已实现STM32 上 LED灯点亮的相关代码
完整代码如下:
#include "stm32f10x.h"
#define DELAY_TIME 0x3FFFFF
#define KEY_ON 0
#define KEY_OFF 1
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--) ;
}
u8 Key_Scan(GPIO_TypeDef* GPIOx,u16 GPIO_Pin)
{
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON) /*检测按键是否被按下,KEY_ON表示有可能被按下*/
{
/*延时消抖*/
Delay(10000);
if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON)
{
/*等待按键被释放*/
while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON);
return KEY_ON;
}
else
return KEY_OFF;
}
else
return KEY_OFF;
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure; /*定义一个GPIO_InitTypeDef类型的结构体*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE)