按键(Key)
全局变量
| 全局变量 | 类型 | 注释 |
|---|---|---|
| g_key1_long_press | uint16_t | 记录按键1的长按计时 |
宏定义
| 宏定义 | 值 | 注释 |
|---|---|---|
| KEY1_GPIO_PORT | GPIOA | 按键1的GPIO端口 |
| KEY1_GPIO_PIN | GPIO_Pin_8 | 按键1的GPIO引脚 |
| KEY1_GPIO_CLK | RCC_APB2Periph_GPIOA | 按键1的GPIO时钟 |
| KEY_PRESS | 1 | 按键被按下 |
| KEY_RELEASE | 0 | 按键被松开 |
| KEY_MODE_ONE_TIME | 1 | 按下一次返回1 |
| KEY_MODE_ALWAYS | 0 | 持续按下返回1 |
方法
Key_Scan(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
扫描按键状态
| 参数 | 类型 | 注释 |
|---|---|---|
| GPIOx | GPIO_TypeDef* | GPIO端口 |
| GPIO_Pin | uint16_t | GPIO引脚 |
| 返回值 | 类型 |
|---|---|
| 按键状态 | uint8_t |
Key1_GPIO_Init(void)
初始化按键1的GPIO
| 返回值 | 类型 |
|---|---|
| 无 | void |
KEYAll_GPIO_Init(void)
初始化所有按键的GPIO
| 返回值 | 类型 |
|---|---|
| 无 | void |
Key1_State(uint8_t mode)
读取按键K1的状态
| 参数 | 类型 | 注释 |
|---|---|---|
| mode | uint8_t | 设置模式,0:持续按下返回1,1:按下只返回一次1 |
| 返回值 | 类型 |
|---|---|
| 按键状态 | uint8_t |
Key1_Long_Press(uint16_t timeout)
读取按键K1的长按状态
| 参数 | 类型 | 注释 |
|---|---|---|
| timeout | uint16_t | 长按时间,单位为秒 |
| 返回值 | 类型 |
|---|---|
| 1:已达到长按状态,0:未达到 | uint8_t |
Key1_is_Press(void)
判断按键是否被按下
| 返回值 | 类型 |
|---|---|
| KEY_PRESS:按下,KEY_RELEASE:松开 | uint8_t |