if( HAL_GPIO_ReadPin(KY4_GPIO_Port,KY4_Pin) == 0) { HAL_Delay(10); if( HAL_GPIO_ReadPin(KY4_GPIO_Port,KY4_Pin) == 0) { if(LedState == 1) { HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); OLED_ShowCHinese(88,4,8); LedState = 0; } else { HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET); OLED_ShowCHinese(88,4,7); LedState = 1; } while(HAL_GPIO_ReadPin(KY4_GPIO_Port,KY4_Pin) == 0); } }
时间: 2024-04-12 09:33:29 浏览: 178
GPIO.zip_GPIO_HAL_LIB
这段代码是一个条件语句,用于检测按钮 KY4 是否被按下。如果 KY4 的引脚状态为低电平(按下按钮),则会执行其中的代码块。
在代码块中,首先延迟10毫秒,以消除按键抖动。然后再次检测 KY4 引脚状态,确保按钮确实被按下。
如果当前的 LedState 变量为 1,则将LED2引脚的状态设置为低电平,同时在 OLED 显示屏上显示一个汉字,并将 LedState 设置为 0。
如果当前的 LedState 变量不为 1,则将LED2引脚的状态设置为高电平,同时在 OLED 显示屏上显示另一个汉字,并将 LedState 设置为 1。
最后,使用一个循环来等待 KY4 引脚状态变为高电平,以确保按钮的松开状态被正确检测到。
阅读全文