把这个函数改成下面试试:
- bool is_button_clicked(GPIO_TypeDef * button_port, uint16_t button_pin, GPIO_PinState valid_state)
- {
- GPIO_PinState state = HAL_GPIO_ReadPin(button_port, button_pin);
-
- if (state == valid_state)
- {
- HAL_Delay(10);
- if (HAL_GPIO_ReadPin(button_port, button_pin) == valid_state)
- {
- while(HAL_GPIO_ReadPin(button_port, button_pin) == valid_state);
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
|