STM32F4-KeyFIFO

2023-05-16

STM32按键FIFO

主要思想就是:

1.先配置按键的初始计数值为滤波值。如,滤波为40ms,则配置该值为固定初始值,如10(假如扫描周期为10ms),每间隔一定时间(上面说的10ms)去检测一次按键的状态,如按键按下则增加该值,按键松开就减少该值。检测该按键的计数值,如大于初始值+滤波值(10+4),则认为是确实按下了,就压栈该按键的按下状态值;如小于初始值-滤波值(10-4),则认为该按键松开了,就压栈该按键的松开状态值。长按也是一样的,如按下1秒确认为长按,则长按的滤波值为100,如检测到该按键的状态值大于初始值+滤波值(10+100),则认为按键长按有效了,就压栈该按键长按状态值。

2.栈FIFO,先进先出的概念,主循环里一直检测(或者如果要求不用很及时响应则可以用定时器定时检测)栈里是否有值,如有就处理该按键值对应的功能。

具体参见代码

转载于:https://my.oschina.net/youmeichifan/blog/2999981

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F4-KeyFIFO 的相关文章

  • PX4中通过串口读取STM32F4串口发送过来消息并发布UORB主题

    PX4中通过串口读取STM32F4串口发送过来消息并发布UORB主题 本次小项目是通过PX4读取STM32F4发过来的数据 xff0c 之前博客介绍了我做的STM32端项目 xff0c 再稍微啰嗦一下 xff1a 解析AIRMAR和测深仪数
  • STM32F4无人机6轴运动处理组件MPU6050

    目的 学习MPU6050的原理 MPU6050初始化方法 原理 MPU6050是9轴运动处理传感器 它集成了3轴MEMS陀螺仪 xff0c 3轴MEMS加速度计 xff0c 以及一个可扩展的数字运动处理器DMP xff08 Digital
  • STM32F4工程--串口--配置一个发送函数(详细版)

    STM32F4工程 串口 配置一个发送函数 xff08 库函数 xff09 芯片 xff1a STM32F429IGT6 目录 一 初始化串口相关的参数 二 初始化串口IO口时钟等参数 三 函数声明 四 主函数 xff08 执行函数 xff
  • STM32F4 使用结构体配置功能

    1 IIC配置 void IIC Mode Config void I2C InitTypeDef I2C InitStructure I2C InitStructure I2C Mode 61 I2C Mode I2C IIC模式 I2C
  • STM32F4系列+FreeRTOS+USB方式驱动有方4G模块

    USB方式驱动有方4G模块 参考博客如下 xff1a 1 https blog csdn net ZCShouCSDN article details 78936456 2 https blog csdn net gyzw mx artic
  • FreeRTOS移植STM32F4

    64 TOC FreeRTOS FreeRTOS移植到STM32F4上 本文章讲解一下如何将FreeRTOS移植到STM32F4开发板上 xff0c 如有不对之处 xff0c 欢迎指正 xff0c 多多交流 一 创建工程文件及代码调试 我们
  • STM32F4 NANO + RT-Thread Studio 测试工程搭建流程

    STM32F4 NANO 43 RT Thread Studio 测试工程搭建流程 硬件 xff1a 正点原子 NANO开发板 MCU STM32F411RCT6 开发平台 xff1a RT Thread Studio 1 新建工程 新建R
  • STM32F4移植FreeRTOS

    在之前的文章 xff1a FreeRTOS全解析 2 源码结构与移植 中我们已经讲解过FreeRTOS移植的方法 xff0c 并且给出了一个在ARM9上移植的例子 xff0c 今天再来看一个例子 xff1a 板子的芯片为STM32F407
  • 正点原子STM32F4笔记

    使用寄存器操作 xff0c 不错的博客 xff1a https blog csdn net w471176877 article category 1230060 https blog csdn net w471176877 article
  • STM32F4-UartPrint

    串口的Printf打印 1 STM32CubeMx配置 xff1a 2 生成代码后 xff0c usart c里增加代码 USER CODE BEGIN 1 int fputc int ch FILE f while HAL UART GE
  • STM32F4 UART基础(HAL库)

    文章目录 概述 96 UART 96 初始化 96 UART 96 参数初始化 96 UART 96 句柄 96 UART 96 初始化结构体 96 UART 96 参数初始化函数 96 UART 96 时钟初始化 96 UART GPIO
  • 关于stm32f4上对(28byj-48)步进电机的应用控制和解读。

    1 关于stm32f4上对 xff08 28byj 48 xff09 步进电机的应用控制和解读 xff08 1 ULN2003驱动模块电路 步进电机不能直接和单片机连接 xff0c 需要对应驱动模块提供电机所需的电流 电路图分析 xff1a
  • STM32F4 422串口通信

    STM32F429 422串口通信 422串口的硬件原理图如下 xff1a 422串口和232串口不同的是引脚的电平控制 xff0c 还有DE是发送使能 xff0c 置高即可 xff1a RE是接收使能 xff0c 置低即可 422接出来的
  • STM32F4 使用SPI读取气压计MS5611的数据并转化为大气压强

    ms5611是同时支持I2C和SPI通信协议的气压计芯片 已经很普遍的被用在飞行器控制板上作为高度传感器 开发过stm32的朋友都知道它的硬件I2C是由bug的 xff0c 一般使用的都是自己编写的软件I2C通信协议 但是其硬件SPI通信却
  • 串口发送通信---UART发送---STM32F4实现

    串口发送程序配置过程 xff08 HAL库 xff09 初始化串口相关参数 xff0c 使能串口 HAL StatusTypeDef span class token function HAL UART Init span span cla
  • 家庭IOT监测之摄像头OV7670测试

    本篇目标 使用STM32F407驱动摄像头OV7670 并上位机显示照片结果 材料准备 STM32F4标准工程 stm32f407自建标准工程 stm32f4标准工程 git仓库地址 STM32F4摄像头测试工程 里面包含ov7670驱动文
  • 关于stm32f429的MDA2D的M2M模式

    LTDC的使用问题 可参考官方例程的配置 需要注意的是 它只是一个LCD控制器 需要定义缓存的地址 可以设置在flash里 但是不便于操作 一般还是建议设置外部SDRAM里 LTDC中DMA2D的使用问题 429中LTDC的2D加速功能还比
  • stm32f407zgt6的pdr_on引脚怎么接

    原文链接 https www amobbs com thread 5495105 1 1 html dsign c6460fe9 407的100脚封装没有这个PDR ON 就是VSS 在引脚分布图中为pdr on 但实际量pdr on对VS
  • 基于STM32F4单片机对步进电机的控制(有代码)

    步进电机简介 步进电机是将电脉冲控制信号转变为角位移或线位移的一种常用的数字控制执行元件 又称为脉冲电机 在驱动电源的作用下 步进电机受到脉冲的控制 其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比 步进电机每接收一个电脉冲 转
  • STM32:从自定义引导加载程序跳转到应用程序时发生硬故障

    我正在开发带有自定义引导加载程序和应用程序的 STM32F401 MCU 编译器是GCC 5 2 1 没有运行优化 在以下跳转序列后的第一次中断后 我遇到了硬故障 引导加载程序 gt 应用程序 gt 引导加载程序 gt 应用程序 从引导加载

随机推荐

  • RealSense T265相机及IMU标定,运行VINS

    转自 https www jianshu com p 194d6c9ef9a4 不确定该文章有没有对IMU和相机的时间做同步 xff01 1 使用imu utils工具包标定IMU 这里有个坑 xff0c imu utils依赖code u
  • 编译px4 Firmware 执行make报错的问题解决办法

    ccache error Failed to create temporary file for home xxx ccache tmp tmp cpp stderr Permission denied 一般这个报错下面还会接另一个报错 x
  • 在Ubuntu中安装Docker,添加Docker官方GPG key失败,解决方案

    1 添加Docker官方GPG key xff1a curl fsSL https download docker com linux ubuntu gpg sudo apt key add 2 问题来了 xff0c 有的人会遇到如下的Bu
  • git中push或者clone时报错the remote end hung up unexpectedly

    使用git提交或者克隆时出现the remote end hung up unexpectedly的异常 xff0c 原因应该是网络原因引起的而且文件可能比较大的情况下 解决办法是 xff1a 配置git的最低速度和最低速度时间 xff0c
  • raspberrypi连接神经计算棒人脸识别

    Raspberrypi连接神经计算棒人脸识别 树莓派3B上部署英特尔神经网络计算棒Intel NCS2进行最普通的人脸识别 参考 英特尔官方文档 博文树莓派上部署英特尔神经网络计算棒Intel NCS2 硬件 xff1a 树莓派3B树莓派3
  • STM32F4 NANO + RT-Thread Studio 测试工程搭建流程

    STM32F4 NANO 43 RT Thread Studio 测试工程搭建流程 硬件 xff1a 正点原子 NANO开发板 MCU STM32F411RCT6 开发平台 xff1a RT Thread Studio 1 新建工程 新建R
  • 多态语法

    多态基础语法 xff1a 向上转型 xff1a 子类型 gt 父类型 xff08 类似于自动类型转换 xff09 向下转型 xff1a 子类型 lt 父类型 xff08 类似于强制类型转换 xff09 如果想调用子类中特有的方法 xff0c
  • python 内部作用域修改外部作用域的变量

    1 xff0c 当内部作用域想修改外部作用域的变量时 xff0c 就需要用到global和nonlocal关键字 2 xff0c 方法嵌套
  • GPS & Lidar & IMU 融合定位与建图_理论学习1

    Localization amp Mapping 参考 xff1a 博文 xff1a Lidar 数据处理 ADS GPS 定位 定位技术分类 xff1a GPS绝对定位 xff0c 相对定位 xff0c 融合定位 问题 xff1a 传统的
  • Aruco检测

    来自 xff1a https blog dgut top 2020 07 15 python aruco 检测ID span class token keyword import span numpy span class token ke
  • uio驱动编写 实例2 //增加了中断部分

    http blog csdn net ganggexiongqi article details 6794215 AUTHOR xff1a Joseph Yang 杨红刚 lt ganggexiongqi 64 gmail com gt C
  • ROS主从机配置方法及rviz显示从机雷达扫描信息

    ROS主从机配置方法及rviz显示从机雷达扫描信息 一 ros节点设置 1 IP查询 通过命令 ifconfig 分别查询主机从机ip 2 修改 bashrc文件 sudo gedit bashrc 主机中添加 xff1a export R
  • ROS创建自定义msg类型功能包

    ROS创建自定义msg类型功能包 一 创建msg消息 首先创建一个空的package单独存放msg类型 xff08 当然也可以在任意的package中自定义msg类型 xff09 为便于说明 xff0c 建立一个名为base sks msg
  • ROS中geometry_msgs消息类型、nav_msg消息

    ROS中geometry msgs消息类型 nav msg消息 参考 xff1a 链接 https blog csdn net ganbaoni9yang article details 50060343 官方文档 xff1a http d
  • 2011年总结

    又是一年年终时 亦是一年总结时 想想自己从去年写年终总结到现在 已经很久没有写过字了 时间过得真快 又是一年过去了 这一年也是我出来工作的第二年 这一年总体来说自己无论在技术还是心态方面有了很大的进步 记得刚出学校那会 啥都不知道 对于工作
  • 性能监测工具-node-export

    1 前言 无论是做性能测试或是运维等都会用到对服务的监测 xff0c 最基本的监测是就是对服务器的基本指标监测 xff0c 比如 xff1a cpu 内存 I O 网络等 这些其实一般系统自带的都有工具 xff0c 很方便 xff0c 比如
  • VSCode(Visual Studio Code)整合Git

    一 xff1a 初始化git插件 在拓展商店中搜索 git xff0c 在下发出现的列表中 xff0c 选择 Git History xff0c 在右边出现的界面 xff0c 点击 安装 即可 本人已经安装 xff0c 安装按钮已无 xff
  • Ubuntu 当前系统资源查看命令Top详解

    top xff1a 主要参数 d xff1a 指定更新的间隔 xff0c 以秒计算 q xff1a 没有任何延迟的更新 如果使用者有超级用户 xff0c 则top命令将会以最高的优先序执行 c xff1a 显示进程完整的路径与名称 S xf
  • ToString的用法

    ToString的用法 string y 61 x ToString 我才明白把一个类型转换为string类型是啥意思 比如当定义一个int类型后 xff0c 利用toString xff08 xff09 方法就能把int转化为string
  • STM32F4-KeyFIFO

    STM32按键FIFO 主要思想就是 xff1a 1 先配置按键的初始计数值为滤波值 如 xff0c 滤波为40ms xff0c 则配置该值为固定初始值 xff0c 如10 假如扫描周期为10ms xff0c 每间隔一定时间 上面说的10m