芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

单片机解密单片机设计之基于STM32的LCD电子钟

单片机解密按键        
按键就完全是正常按键扫描代码的写法,注意这里消抖选用的三行按键消抖,主要是考虑到延时按键消抖可能会破坏掉LVGL整个框架的时基,所以使用的这种方式。

  1. //              KEY1   PD8
  2. //              KEY2   PD9
  3. //              KEY3   PD10
  4. //              KEY4   PD11
  5. //              KEY5   PD12
  6. //              KEY6   PD13

  7. #include "Key.h"

  8. uint8_t Key_Value,Key_Down,Key_Up,Key_Last;

  9. uint8_t Key_GetValue(void)
  10. {
  11.         if(HAL_GPIO_ReadPin(GPIOD,KEY1_Pin) == 0)
  12.                 return 1;
  13.         if(HAL_GPIO_ReadPin(GPIOD,KEY2_Pin) == 0)
  14.                 return 2;
  15.         if(HAL_GPIO_ReadPin(GPIOD,KEY3_Pin) == 0)
  16.                 return 3;
  17.         if(HAL_GPIO_ReadPin(GPIOD,KEY4_Pin) == 0)
  18.                 return 4;
  19.         if(HAL_GPIO_ReadPin(GPIOD,KEY5_Pin) == 0)
  20.                 return 5;
  21.         if(HAL_GPIO_ReadPin(GPIOD,KEY6_Pin) == 0)
  22.                 return 6;
  23.         return 0;
  24. }

  25. void Key_RemoveShake(void)
  26. {
  27.         Key_Value = Key_GetValue();//获取按下键值
  28.         Key_Down = Key_Value & (Key_Value ^ Key_Last);//获取下降沿
  29.         Key_Up = ~Key_Value & (Key_Value ^ Key_Last);//获取上升沿
  30.         Key_Last = Key_Value;//键值覆盖
  31. }

  32. Key_Type Key_Press(void)
  33. {
  34.         return Key_Down ? (Key_Type)Key_Value : 0;
  35. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信