按键检测 + LED 控制(STM32 HAL 风格)
// 按键 PE4 上拉输入,LED PB5 推挽输出
__HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOE_CLK_ENABLE();
GPIO_InitTypeDef gi = {0};
gi.Pin = GPIO_PIN_5; gi.Mode = GPIO_MODE_OUTPUT_PP; gi.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &gi);
gi.Pin = GPIO_PIN_4; gi.Mode = GPIO_MODE_INPUT; gi.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOE, &gi);
while(1){
if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_4) == GPIO_PIN_RESET){ // 按下=低
HAL_Delay(15); // 软件消抖
if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_4) == GPIO_PIN_RESET)
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5); // 翻转LED
}
}