判断按键是否按下

2019-07-21 05:40发布

/* 按键按下标置宏*  按键按下为高电平,设置 KEY_ON=1, KEY_OFF=0*  若按键按下为低电平,把宏设置成KEY_ON=0 ,KEY_OFF=1 即可*/#define KEY_ON 1#define KEY_OFF 0/** 函数名:Key_Scan* 描述  :检测是否有按键按下* 输入  :GPIOx:x 可以是 A,B,C,D或者 E* GPIO_Pin:待读取的端口位* 输出  :KEY_OFF(没按下按键)、KEY_ON(按下按键)*/uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin){/*检测是否有按键按下 */if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON )//GPIO_ReadInputDataBit这个函数在固件库中可以查到用法{/*等待按键释放 */while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON);return KEY_ON;}elsereturn KEY_OFF;}第二种uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin){/*检测是否有按键按下 */if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_OFF ){/*等待按键释放 */        delay_ms(200);if((GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_OFF))return KEY_ON;}elsereturn KEY_OFF;}建议用第二种
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。