# iSwitch **Repository Path**: Createtree/iswitch ## Basic Information - **Project Name**: iSwitch - **Description**: 通用的多功能按键驱动 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-03-19 - **Last Updated**: 2024-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # iSwitch > 通用按键处理库 ## 特性 - 支持自定义软件去抖时间 - 支持自定义触发电平 - 支持设置松手触发或按下触发 - 支持多个按键同时按下无冲突 - 支持按下、松手、点击、双击、短按、长按、连续触发等事件类型 - 支持任意数量的组合键 - 每个按键实例相互独立,所有接口可重入 - 支持功能剪裁 ### 资源占用详情 | 编译器 | 剪裁 | ROM(Byte) | RAM (Byte per instance) | | ------- | ---- | --------- | ----------------------- | | AC5 -O3 | 否 | 693 | 22 | | AC6 -Os | 否 | 715 | 22 | | AC5 -O3 | 是 | 397 | 14 | ## 使用要求 - 实现按键Pin电平读取到uint8_t数组中 - 1~30ms的定时调用 ## 使用方法 > 详细用法参考 [bsp_key.c](https://gitee.com/Createtree/iswitch/blob/master/bsp_key.c) 的示例 > [1] 创建按键实例对象 > [2] 实现按键电平读取接口 > [3] 初始按键并配置功能 > [4] 在任务或定时器(1~30ms)中读取按键输入数据,并使用iSW_Scan来扫描输入数据 > [5] 按键事件处理 > [6] 清空按键事件等待下次扫描