85 lines
2.5 KiB
C
85 lines
2.5 KiB
C
/**
|
|
****************************************************************************************************
|
|
* @file key.h
|
|
* @author 正点原子团队(ALIENTEK)
|
|
* @version V1.0
|
|
* @date 2021-10-14
|
|
* @brief 按键输入 驱动代码
|
|
* @license Copyright (c) 2020-2032, 广州市星翼电子科技有限公司
|
|
****************************************************************************************************
|
|
* @attention
|
|
*
|
|
* 实验平台:正点原子 探索者 F407开发板
|
|
* 在线视频:www.yuanzige.com
|
|
* 技术论坛:www.openedv.com
|
|
* 公司网址:www.alientek.com
|
|
* 购买地址:openedv.taobao.com
|
|
*
|
|
* 修改说明
|
|
* V1.0 20211014
|
|
* 第一次发布
|
|
*
|
|
****************************************************************************************************
|
|
*/
|
|
|
|
#ifndef __KEY_H
|
|
#define __KEY_H
|
|
|
|
#include "./SYSTEM/sys/sys.h"
|
|
|
|
|
|
/******************************************************************************************/
|
|
/* 引脚 定义 */
|
|
|
|
#define KEY0_GPIO_PORT GPIOE
|
|
#define KEY0_GPIO_PIN GPIO_PIN_4
|
|
#define KEY0_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOE_CLK_ENABLE(); }while(0) /* PE口时钟使能 */
|
|
|
|
#define KEY1_GPIO_PORT GPIOE
|
|
#define KEY1_GPIO_PIN GPIO_PIN_3
|
|
#define KEY1_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOE_CLK_ENABLE(); }while(0) /* PE口时钟使能 */
|
|
|
|
#define KEY2_GPIO_PORT GPIOE
|
|
#define KEY2_GPIO_PIN GPIO_PIN_2
|
|
#define KEY2_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOE_CLK_ENABLE(); }while(0) /* PE口时钟使能 */
|
|
|
|
#define WKUP_GPIO_PORT GPIOA
|
|
#define WKUP_GPIO_PIN GPIO_PIN_0
|
|
#define WKUP_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0) /* PA口时钟使能 */
|
|
|
|
/******************************************************************************************/
|
|
|
|
#define KEY0 HAL_GPIO_ReadPin(KEY0_GPIO_PORT, KEY0_GPIO_PIN) /* 读取KEY0引脚 */
|
|
#define KEY1 HAL_GPIO_ReadPin(KEY1_GPIO_PORT, KEY1_GPIO_PIN) /* 读取KEY1引脚 */
|
|
#define KEY2 HAL_GPIO_ReadPin(KEY2_GPIO_PORT, KEY2_GPIO_PIN) /* 读取KEY2引脚 */
|
|
#define WK_UP HAL_GPIO_ReadPin(WKUP_GPIO_PORT, WKUP_GPIO_PIN) /* 读取WKUP引脚 */
|
|
|
|
|
|
#define KEY0_PRES 1 /* KEY0按下 */
|
|
#define KEY1_PRES 2 /* KEY1按下 */
|
|
#define KEY2_PRES 3 /* KEY2按下 */
|
|
#define WKUP_PRES 4 /* KEY_UP按下(即WK_UP) */
|
|
|
|
void key_init(void); /* 按键初始化函数 */
|
|
uint8_t key_scan(uint8_t mode); /* 按键扫描函数 */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|