64 lines
1.6 KiB
C
64 lines
1.6 KiB
C
/*
|
||
* 模块名称:按键驱动适配层
|
||
* 模块功能:提供MultiButton库与STM32 HAL库的适配接口
|
||
* 适用平台:STM32F103C8T6
|
||
* 作者:王建锋
|
||
* 创建日期:2026-07-13
|
||
* 修改记录:
|
||
* 2026-07-13 王建锋 创建初始版本
|
||
*/
|
||
|
||
#ifndef __BUTTON_DRIVER_H
|
||
#define __BUTTON_DRIVER_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include "multi_button.h"
|
||
#include "main.h"
|
||
|
||
/* 按键ID定义 */
|
||
typedef enum {
|
||
BUTTON_ID_KEY1 = 0, /* KEY1: PB4 */
|
||
BUTTON_ID_KEY2, /* KEY2: PB5 */
|
||
BUTTON_ID_KEY3, /* KEY3: PB3 */
|
||
BUTTON_ID_KEY4, /* KEY4: PC14 */
|
||
BUTTON_ID_KEY5, /* KEY5: PC15 */
|
||
BUTTON_ID_MAX /* 按键总数 */
|
||
} ButtonId_t;
|
||
|
||
/* 按键有效电平定义 */
|
||
#define BUTTON_ACTIVE_LEVEL_LOW 0 /* 低电平有效 */
|
||
#define BUTTON_ACTIVE_LEVEL_HIGH 1 /* 高电平有效 */
|
||
|
||
/*
|
||
* 函数功能:按键驱动初始化
|
||
* 入口参数:无
|
||
* 返回值:无
|
||
* 函数说明:初始化所有按键对象,注册回调函数,启动按键轮询
|
||
*/
|
||
void button_driver_init(void);
|
||
|
||
/*
|
||
* 函数功能:获取指定按键的电平状态
|
||
* 入口参数:button_id - 按键标识符
|
||
* 返回值:GPIO电平值 (0或1)
|
||
* 函数说明:根据按键ID读取对应GPIO引脚的电平
|
||
*/
|
||
uint8_t button_driver_read_level(uint8_t button_id);
|
||
|
||
/*
|
||
* 函数功能:获取指定按键的事件
|
||
* 入口参数:button_id - 按键标识符
|
||
* 返回值:按键事件
|
||
* 函数说明:返回指定按键的当前事件
|
||
*/
|
||
ButtonEvent button_driver_get_event(uint8_t button_id);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif /* __BUTTON_DRIVER_H */
|