STM32按键消抖(HAL)

这篇具有很好参考价值的文章主要介绍了STM32按键消抖(HAL)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、工作原理

二、按键的基本使用

1.使用CubeMX配置GPIO

2.编写代码

 三、按键使用的问题

四、软件消抖

1、利用延时避免抖动

 2、利用定时器中断避免抖动

2.1、基本思路

2.2、配置CubeMX

 2.3、代码编写

总结



前言

按键是学习STM32必不可少的一个部分,是一个典型的GPIO口输入的案例。要掌握其中的原理和使用方法。(这里我用的是f103RCT8和HAL库的示例)

一、工作原理

stm32按键消抖,stm32,单片机,armstm32按键消抖,stm32,单片机,arm

根据截取的单片机原理图可以知道,CPU连接的PA15直接连接的KEY0,当按键按下的时候导通这个条线路就会变成低电平。在程序中读取什么时候电平变为低电平就说明这个按键按下了。

 

但是问题点在与在我没有按下的时候,PA15这个引脚是什么电位呢?

在STM32的GPIO可以配置成八种模式,输入的模式有浮空输入,上拉输入,下拉输入,模拟输入。上拉输入模式顾名思义就是接一个上拉电阻的输入模式,也就是说在正常状态下PA15会处于一个高电平的状态。所以我们在配置GPIO模式的时候要选择上拉输入。

 

二、按键的基本使用

1.使用CubeMX配置GPIO

stm32按键消抖,stm32,单片机,arm

stm32按键消抖,stm32,单片机,arm

 

 

 stm32按键消抖,stm32,单片机,arm

 stm32按键消抖,stm32,单片机,arm

 

2.编写代码

stm32按键消抖,stm32,单片机,arm


 三、按键使用的问题

在完成上面的操作之后,按下一次按键你会发现有些时候灯闪了好几下,有些时候又压根不亮。这就是普遍存在的按键抖动问题。

按键抖动的原因简单介绍就是因为硬件的问题在我们按下的按键的时候不会出现我们理想的电平变化而是会在上升和下降的时候出现一个抖动。通常这个抖动都会在5-20ms之内。

stm32按键消抖,stm32,单片机,arm

 

按键抖动的消除一般有两个方法一个是硬件消抖,另一个是软件消抖。硬件消抖会增加成本具体的方法可以百度,软件消抖就是通过程序来实现消抖。了解了抖动的原理其实就很好实现软件消抖了。

四、软件消抖

1、利用延时避免抖动

stm32按键消抖,stm32,单片机,arm

 2、利用定时器中断避免抖动

2.1、基本思路

通过定时器每10ms进入一次中断,读取按键的电平并且记录状态,如果上一状态是低电平并且现在是高电平说明按键已经松开。

每10ms进入一次中断,再加上上一状态的判断可以较为稳定的避免判断的点是抖动状态下。且由于人的按键速度没有那么快,低电平的保持时间基本上是大于10ms的,所以很少会出现定时的10ms恰好走完按键的低电平。

2.2、配置CubeMX

stm32按键消抖,stm32,单片机,arm

stm32按键消抖,stm32,单片机,arm

stm32按键消抖,stm32,单片机,arm

stm32按键消抖,stm32,单片机,arm 

 stm32按键消抖,stm32,单片机,arm

 2.3、代码编写

stm32按键消抖,stm32,单片机,arm

stm32按键消抖,stm32,单片机,arm 

stm32按键消抖,stm32,单片机,arm 

stm32按键消抖,stm32,单片机,arm 

总结

本人是新手一枚,上述有些内容是本人学习完后的一些看法,如有错误请指出。文章来源地址https://www.toymoban.com/news/detail-622212.html

到了这里,关于STM32按键消抖(HAL)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F407单片机HAL库CAN2不能接收数据解决方法

      最近在使用stm32F407的片子调试can通信,直接在正点原子的代码上修改调试,调试can1的时候,基本没啥问题,收发都正常,使用查询模式和中断模式都可以。但是当修改到can2的时候,可以正常发送数据,但是中断函数始终进不去。折腾了一两个小时终于搞定了。下面将解

    2024年02月16日
    浏览(46)
  • STM32HAL库定时器中断、按键中断、串口中断、按键消抖和低通滤波算法详解

    本文将详细介绍STM32HAL库中的定时器中断、按键中断、串口中断的使用方法,以及按键消抖和低通滤波算法的实现。希望能对您的STM32开发提供帮助。 目录 1. 定时器中断 2. 按键中断 3. 串口中断 4. 按键消抖 5. 低通滤波算法 一、定时器中断 定时器中断是STM32开发中常用的一种

    2024年02月15日
    浏览(53)
  • 单片机入门资料,按键消抖方式,按键怎么消抖

     1.什么是按键消我们先来看一下按键按下去的波形图   1.按键消抖原理 我们可以看到当按键按下的那一时刻和松开的时候有类似于锯齿的形状那就是按键抖动,这个抖动不是我们人为能控制得了的,所以我们只能对进行硬件消抖或者进行软件消抖.          上图中我们可以

    2024年02月08日
    浏览(40)
  • 【单片机】STM32 ARM Cortex-M0 微控制器特性概述 双排 TSSOP封装好手工焊接的STM32芯片,双排

    STM32F070CB STM32F070RB STM32F070C6 STM32F070F6 在嵌入式系统和物联网应用中,ARM Cortex-M0 微控制器以其强大的性能和丰富的功能而备受瞩目。本文将介绍该微控制器的主要特性,使读者更好地了解其适用范围和潜在应用。 ARM® 32位 Cortex®-M0 CPU 频率高达 48 MHz Flash 存储器 32 到 128 Kbytes

    2024年01月18日
    浏览(48)
  • proteus结合keil-arm编译器构建STM32单片机项目进行仿真

        proteus是可以直接创建设计图和源码的,但是源码编译它需要借助keil-arm编译器,也就是我们安装keil-mdk之后自带的编译器。     下面给出一个完整的示例,主要是做一个LED灯闪烁的效果。     新建工程指定路径,Schematic,PCB layout都选择默认,在最后创建项目工程向导的时

    2024年02月13日
    浏览(65)
  • 单片机:STM32F4x HAL库软硬SPI驱动ST7735s 1.8寸LCD屏幕

    说明:此篇为学习记录。可能存在错误或者不足。如有问题请指出。 主控芯片:STM32F411CEU6 主控开发板:WeAct STM32F411CEU6最小系统板 TFT-LCD屏幕:合宙1.8寸TFT-LCD,驱动为ST7735s MDK版本:5,32 HAL库版本:1.27.1 STM32CubeMX版本:6.7.0 ST7735s支持8080并口,3线和4线串行接口,模块的驱动方

    2024年02月03日
    浏览(59)
  • K_A08_009 基于 STM32等单片机驱动TB6612模块按键控制直流电机正反转加减速启停

    目录 一、资源说明 二、基本参数         1、参数         2、引脚说明 三、驱动说明         TB6612模块驱动说明         对应程序:         ENA ENB输出PWM 四、部分代码说明         接线说明                 1、STC89C52RC+TB6612模块                 2、STM32F

    2024年02月15日
    浏览(38)
  • K_A08_013 基于 STM32等单片机驱动大功率MOS管模块按键控制直流电机加减速启停

    目录 一、资源说明 二、基本参数         参数         引脚说明 三、驱动说明         大功率MOS模块驱动         对应程序: 四、部分代码说明         接线说明                 STC89C52RC+大功率MOS模块                 STM32F103C8T6+大功率MO

    2023年04月26日
    浏览(52)
  • 使用标准库和HAL库的STM32单片机进行串口通信/解决因例程为HAL库的传感器,而其他模块都是标准库,需要将数据用串口传送给标准库的单片机的相关问题

    (本文使用STM32F103C8T6,在CubeMX里演示用的是RBT6,但实际上引脚是一样的)         本文 着重解决一个大工程中,某些传感器的例程是HAL库的,而其他模块(或算法)都是标准库,导致难以移植的问题。 本文的解决方法是:使用一片单片机用HAL库(CubeMX)配置例程,然后

    2024年02月06日
    浏览(65)
  • 51单片机定时器中断按键消抖(无延时)

    单片机入门学习记录(二) 在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片

    2024年02月14日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包