硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2094|回复: 1
收起左侧

[有问必答] 关于 bsp.key

[复制链接]

11

主题

2

回帖

35

积分

新手上路

积分
35
发表于 2018-11-8 16:55:09 | 显示全部楼层 |阅读模式
请问什么时候,用#else        static uint8_t IsKeyDown1(void) {if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) == 0) return 1;else return 0;}
static uint8_t IsKeyDown2(void) {if ((GPIO_PORT_K2->IDR & GPIO_PIN_K2) == 0) return 1;else return 0;}
static uint8_t IsKeyDown3(void) {if ((GPIO_PORT_K3->IDR & GPIO_PIN_K3) == 0) return 1;else return 0;}

static uint8_t IsKeyDown9(void) {if (IsKeyDown1() && IsKeyDown2()) return 1;else return 0;}                /* K1 K2×éoϼü */
static uint8_t IsKeyDown10(void) {if (IsKeyDown2() && IsKeyDown3()) return 1;else return 0;}        /* K2 K3×éoϼü */

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2018-11-8 16:59:33 | 显示全部楼层
用不到,程序里面只是做了个备份,没有将其删除,实际上#else无法正确的区分单独按下和同时按下。
  1. /* 安富莱 STM32-V4 开发板 */
  2. #if 1        /* 为了区分3个事件: K1单独按下, K2单独按下, K1和K2同时按下 */
  3. static uint8_t IsKeyDown1(void)
  4. {
  5.         if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) == 0 && (GPIO_PORT_K2->IDR & GPIO_PIN_K2) == 0
  6.                 && (GPIO_PORT_K3->IDR & GPIO_PIN_K3) != 0)
  7.                 return 1;
  8.         else
  9.                 return 0;
  10. }
  11. static uint8_t IsKeyDown2(void)
  12. {
  13.         if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) != 0 && (GPIO_PORT_K2->IDR & GPIO_PIN_K2) != 0
  14.                 && (GPIO_PORT_K3->IDR & GPIO_PIN_K3) != 0)
  15.                 return 1;
  16.         else
  17.                 return 0;
  18. }
  19. static uint8_t IsKeyDown3(void)
  20. {
  21.         if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) != 0 && (GPIO_PORT_K2->IDR & GPIO_PIN_K2) == 0
  22.                 && (GPIO_PORT_K3->IDR & GPIO_PIN_K3) == 0)
  23.                 return 1;
  24.         else
  25.                 return 0;
  26. }
  27. static uint8_t IsKeyDown9(void)        /* K1 K2组合键 */
  28. {
  29.         if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) == 0 && (GPIO_PORT_K2->IDR & GPIO_PIN_K2) != 0
  30.                 && (GPIO_PORT_K3->IDR & GPIO_PIN_K3) != 0)
  31.                 return 1;
  32.         else
  33.                 return 0;
  34. }
  35. static uint8_t IsKeyDown10(void)        /* K2 K3组合键 */
  36. {
  37.         if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) != 0 && (GPIO_PORT_K2->IDR & GPIO_PIN_K2) != 0
  38.                 && (GPIO_PORT_K3->IDR & GPIO_PIN_K3) == 0)
  39.                 return 1;
  40.         else
  41.                 return 0;
  42. }
  43. #else       
  44. static uint8_t IsKeyDown1(void) {if ((GPIO_PORT_K1->IDR & GPIO_PIN_K1) == 0) return 1;else return 0;}
  45. static uint8_t IsKeyDown2(void) {if ((GPIO_PORT_K2->IDR & GPIO_PIN_K2) != 0) return 1;else return 0;}
  46. static uint8_t IsKeyDown3(void) {if ((GPIO_PORT_K3->IDR & GPIO_PIN_K3) == 0) return 1;else return 0;}

  47. static uint8_t IsKeyDown9(void) {if (IsKeyDown1() && IsKeyDown2()) return 1;else return 0;}                /* K1 K2组合键 */
  48. static uint8_t IsKeyDown10(void) {if (IsKeyDown2() && IsKeyDown3()) return 1;else return 0;}        /* K2 K3组合键 */
  49. #endif
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 03:51 , Processed in 0.147208 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表