stm32 独立按键长按的示例代码
时间: 2023-03-30 08:01:43 浏览: 120
stm32 代码例子(code example)
3星 · 编辑精心推荐
以下是一个简单的 STM32 独立按键长按的示例代码:
#include "stm32f10x.h"
#define BUTTON_PIN GPIO_Pin_
#define BUTTON_PORT GPIOA
int main(void)
{
// 初始化按键引脚为输入模式
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = BUTTON_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(BUTTON_PORT, &GPIO_InitStructure);
// 记录按键状态和按下时间
uint8_t button_pressed = ;
uint32_t button_press_time = ;
while (1)
{
// 检测按键状态
if (GPIO_ReadInputDataBit(BUTTON_PORT, BUTTON_PIN) == RESET)
{
if (!button_pressed)
{
// 按键刚被按下,记录按下时间
button_pressed = 1;
button_press_time = HAL_GetTick();
}
else if (HAL_GetTick() - button_press_time >= 100)
{
// 按键已经被按下超过 1 秒,执行长按操作
// TODO: 在这里添加长按操作的代码
}
}
else
{
// 按键已经被松开,重置按键状态和按下时间
button_pressed = ;
button_press_time = ;
}
}
}
阅读全文