一个简单的不支持连按的按键翻转电平
首先说一下,可以使用延时函数进行按键消抖,但是不推荐使用延时函数实现按键消抖,因为延时函数会阻塞程序的执行,不利于程序的并发处理和响应速度,特别是在使用多任务或者中断处理时,延时函数可能会导致程序无法及时响应其他事件。如果使用的是RTOS操作系统,可以使用RTOS提供的任务挂起和延时函数实现按键消抖,这样可以确保程序的并发性和响应速度。
1 static unsigned char keyflag=1; 2 if(KEY==0){ 3 HAL_Delay(100); 4 if(KEY==0&&keyflag==1){ 5 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5); 6 HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_5); 7 keyflag=0; 8 } 9 else if(KEY==1){ 10 keyflag=1; 11 } 12 }