蓝桥杯嵌入式学习日记(三)——按键的长按、短按与双击(三行按键法)【STM32】【HAL库】

昨天 9202阅读 0评论

目录

  • 一、查阅相关资料
  • 二、程序的编写
    • 1、创建工程
    • 2、三行按键法
    • 3、短按与长按
    • 4、双击

      一、查阅相关资料

        想要进行一块板子的开发,需要先查阅资料了解器件连接。

      蓝桥杯嵌入式学习日记(三)——按键的长按、短按与双击(三行按键法)【STM32】【HAL库】 第1张

        从CT117E-M4产品手册中不难发现,按键分别有PB0、PB1、PB2、PA0分别对应B1、B2、B3、B4四个按键。

      按键抖动

      蓝桥杯嵌入式学习日记(三)——按键的长按、短按与双击(三行按键法)【STM32】【HAL库】 第2张

      蓝桥杯嵌入式学习日记(三)——按键的长按、短按与双击(三行按键法)【STM32】【HAL库】 第3张

        我们所使用这类按键时,当按键按下,内部的机械触点因为弹性,并不会立马导通,同样松开时也不是立马分离,而是会产生一连串的抖动,这段时间大概在5~10ms,为了防止紊乱我们要进行消抖。这里我选择利用uwTick进行软件延时,实际情况中也可以使用定时器,但不建议使用HAL_Delay函数进行延时。

      	if( uwTick - KeyTick  
      

      了解了这些,我们可以进行STM32cubemx工程创建。依旧是上一篇的工程进行延展。

      二、程序的编写

      1、创建工程

      蓝桥杯嵌入式学习日记(三)——按键的长按、短按与双击(三行按键法)【STM32】【HAL库】 第4张

      如图设置完以后便可以生成工程进行编写,不会利用STM32cubemx生成工程的可以参考上一篇利用STM32cubemx创建工程并以STM32G4点灯【HAL库】。

      依旧是照例创建key.c和key.h方便管理。

      2、三行按键法

      #define B1 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) 
      #define B2 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1) 
      #define B3 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2) 
      #define B4 HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) 
      #define Key_Flag  B1 | (B2
      	u8 ReadDate = Key_Flag ^ 0xff ;
      	Trg = ReadDate & (ReadDate ^ Cont) ;
      	Cont = ReadDate ;
      }
      
      	if( uwTick - KeyTick 

免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,9202人围观)

还没有评论,来说两句吧...

目录[+]