TMC32_QJB/Key/Key.h

119 lines
2.6 KiB
C
Raw Normal View History

2026-04-30 08:23:12 +00:00
/**
******************************************************************************
* @file Key.h
* @author jjj
* @version V1.0.0
* @date 06/13/2022
* @brief
******************************************************************************
*
*
* <h2><center>&copy; COPYRIGHT 2022 </center></h2>
******************************************************************************
**/
#ifndef _KEY_H
#define _KEY_H
#ifdef __cplusplus
extern "C" {
#endif
#include "global.h"
#define KEYA_GPIO_PORT GPIOA
#define KEYC_GPIO_PORT GPIOC
#define KEYA_COL2 GPIO_PIN_2
#define KEYA_COL3 GPIO_PIN_1
#define KEYA_ROW0 GPIO_PIN_0
#define KEYA_ROW1 GPIO_PIN_3
#define KEYA_ROW2 GPIO_PIN_6
#define KEYA_ROW3 GPIO_PIN_5
#define KEYC_COL0 GPIO_PIN_11
#define KEYC_COL1 GPIO_PIN_10
#define KEY_SHAKE_COUNT 4
#define KEY_PRESS 0
#define KEY1 (0x01) //(1)
#define KEY2 (0x02) //(1<<1)
#define KEY3 (0x04) //(1<<2)
#define KEY4 (0x08) //(1<<3)
#define KEY5 (0x10) //(1<<4)
#define KEY6 (0x20) //(1<<5)
#define KEY7 (0x40) //(1<<6)
#define KEY8 (0x80) //(1<<7)
#define KEY9 (0x100) //(1<<8)
#define KEYF (0x200) //(1<<9)
#define KEY0 (0x400) //(1<<10)
#define KEYC (0x800) //(1<<11)
#define KEYDA (0x1000) //(1<<12)
#define KEYDB (0x2000) //(1<<13)
#define KEYD (KEYDA|KEYDB)
#define KEYVA (0x4000) //(1<<14)
#define KEYVB (0x8000) //(1<<15)
#define KEYV (KEYVA|KEYVB)
#define KEY1GPIO GPIOC
#define KEY1PIN KEYC_COL0
#define KEY2GPIO GPIOC
#define KEY2PIN KEYC_COL1
#define KEY3GPIO GPIOA
#define KEY3PIN KEYA_COL2
#define KEYDAGPIO GPIOA
#define KEYDAPIN KEYA_COL3
#define KEY4GPIO GPIOC
#define KEY4PIN KEYC_COL0
#define KEY5GPIO GPIOC
#define KEY5PIN KEYC_COL1
#define KEY6GPIO GPIOA
#define KEY6PIN KEYA_COL2
#define KEYDBGPIO GPIOA
#define KEYDBPIN KEYA_COL3
#define KEY7GPIO GPIOC
#define KEY7PIN KEYC_COL0
#define KEY8GPIO GPIOC
#define KEY8PIN KEYC_COL1
#define KEY9GPIO GPIOA
#define KEY9PIN KEYA_COL2
#define KEYVAGPIO GPIOA
#define KEYVAPIN KEYA_COL3
#define KEYFnGPIO GPIOC
#define KEYFnPIN KEYC_COL0
#define KEY0GPIO GPIOC
#define KEY0PIN KEYC_COL1
#define KEYCGPIO GPIOA
#define KEYCPIN KEYA_COL2
#define KEYVBGPIO GPIOA
#define KEYVBPIN KEYA_COL3
#define KEY_CHECKCOUNT 30
#define KEY_VALIDATE 20
#define KEY_HOLDCOUNT 500
typedef struct
{
volatile uint8_t pressed;
volatile uint8_t released;
volatile uint8_t press_count;
volatile uint8_t release_count;
volatile uint16_t hold_count;
}KEY_STATUS;
void Key_Init(void);
void Key_Event(void);
void Key_SendData(void);
void Key_Wait(void);
uint8_t startShowDevicemod(void);
2026-04-30 08:23:12 +00:00
#ifdef __cplusplus
}
#endif
#endif /* _KEY_H */