首页 > 其他分享 >按键扫描状态机

按键扫描状态机

时间:2023-01-28 21:11:45浏览次数:39  
标签:RESET break HAL 扫描 状态机 KEY 按键 KeyState GPIO

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if (htim->Instance == TIM10)
    {
        switch (KeyState)
        {
        case KEY_CHECK:
            if (HAL_GPIO_ReadPin(B1GPIO_Port, B1_Pin) == GPIO_PIN_RESET)
            {
                KeyState = KEY_COMFIRM;
            }
            break;
        case KEY_COMFIRM:
            if (HAL_GPIO_ReadPin(B1GPIO_Port, B1_Pin) == GPIO_PIN_RESET)
            {
                KeyState = KEY_RELEASE;
                KeyFlag = 1;
            }else{
                KeyState = KEY_CHECK;
            }
            break;
        case KEY_RELEASE:
            if (HAL_GPIO_ReadPin(B1GPIO_Port, B1_Pin) == GPIO_PIN_RESET)
            {
                KeyState = KEY_CHECK;
            }
            break;
        default:
            break;
        }
    }
}

 

标签:RESET,break,HAL,扫描,状态机,KEY,按键,KeyState,GPIO
From: https://www.cnblogs.com/ycp666/p/17071267.html

相关文章

  • Squirrel状态机-从原理探究到最佳实践
    作者:京东物流郑朋辉1简介Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建......
  • Squirrel状态机-从原理探究到最佳实践
    作者:京东物流郑朋辉1简介Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建、......
  • Qt-Qt之雷达扫描效果-No25-QtRadar
    相关资料:实例代码:.pro1QT+=coregui23greaterThan(QT_MAJOR_VERSION,4):QT+=widgets45CONFIG+=c++1167#Thefollowingdefinemakesyourcomp......
  • FSM状态机设计
    1.状态机主要分为两类:Moore型&Mealy型Moore状态机:输出仅仅与当前状态有关Mealy状态机:输出不仅取决于当前状态,还和输入有关2.三段式状态机:第一段:时序逻辑描述curr......
  • 表单中设置了 `keyup.enter.native` 的按键事件,但是回车后没有执行查询,反而会刷新页面
    From: https://www.cnblogs.com/shayloyuki/p/16524712.html 场景添加属性对话框中,input输入后点击enter,不会执行绑定的handleDialogQuery事件,反而会刷新整个页面;......
  • 用状态机实现通用多字节SPI接口模块
    这次设计一个通用的多字节SPI接口模块,特点如下:可以设置为1-128字节的SPI通信模块可以修改CPOL、CPHA来进行不同的通信模式可以设置输出的时钟 状态转移图和思路与多......
  • 按键盘指定字母跳转输出
    datasegment;数据段str1db'Yes!$'str2db'No!$'dataendscodesegment;代码段assumecs:code,ds:datastart:jmpgetget:movah,1i......
  • Qt-Qt之雷达扫描效果-No25-QtRadar
    相关资料:https://blog.csdn.net/weixin_43865793/article/details/127684665  原作者实例代码:.pro1QT+=coregui23greaterThan(QT_MAJOR_VERSI......
  • Python写一个简单的端口扫描器
    前言在日常的信息收集工作中,我们可以用Nmap来对目标进行信息收集,但这只是一般情况,在特殊情况中,比如我们没有任何工具来帮助我们收集信息,(假设)我们有Python环境,我们就需要自......
  • 获取指定路径,扫描路径下指定类(仿Spring)
    本文目标:传入指定路径,扫描对应路径下符合要求的类,并添加到指定的集合中。其原型是Spring中初始化容器类的一部分。当然本例仅仅完成基本功能,没有考虑过多功能——即Spring......