STM32 核心板用户按钮程序,输入模式-带软件消抖

该例子是一个 STM32 核心板用户按钮的测试程序,配置的是输入模式而非外部中断模式。新手拿到STM32核心板后,想必都迫不及待的想测试下核心板上的用户按键把,这个程序就是测试用户按键的,不妨参考下。

核心板原理图

代码

while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    
    /* 核心板用户按钮程序 */
    // 核心板上的用按钮是直接接到 GND 的没有上拉电阻,所有要配置内部上拉电阻
    // 1. 判断用户是否按下按钮
    // 2. 延时(消抖)
    // 3. 再次判断按钮是否还在按下
    // 4. 判断按钮是否松开
    // 5. 按钮松开后切换 LED 的状态
    if (GPIO_PIN_RESET == HAL_GPIO_ReadPin(USER_KEY_GPIO_Port, USER_KEY_Pin)){
        HAL_Delay(20);
        if (GPIO_PIN_RESET == HAL_GPIO_ReadPin(USER_KEY_GPIO_Port, USER_KEY_Pin)){
            while(GPIO_PIN_RESET == HAL_GPIO_ReadPin(USER_KEY_GPIO_Port, USER_KEY_Pin));
            HAL_GPIO_TogglePin(STATE_LED_GPIO_Port, STATE_LED_Pin);
        }
    }
}

效果图

感谢阅读,再会!

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注