一看就懂:stm32按键长按短按实现

本文介绍了如何在STM32中实现按键的长按和短按功能,通过定时器扫描按键状态,实现10ms的时间间隔检测。当按键被按下时,记录按下时间,超过特定阈值判断为长按或短按,并相应控制LED1的开关。通过回调函数和串口重定向函数,实现了按键状态的实时反馈。整个过程中涉及到了CUBEMX配置、定时器、串口通讯和LED控制等知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stm32按键长按短按实现

实现功能:长按开LED1,短按关LED1


前言

为什么查资料,因为不会啊,为什么不会,这还是个问题。。。害,今天有个实例要用到按键的长按短按,刚开始写遇到了一点问题,在这里分享一下!


一、具体实现过程:

1.CUBEMX配置 LED、 KEY、定时器:10ms(选用)、串口(调试打印)
(对这部分配置不熟悉的,可以去看看基础配置,)

2.点击生成代码:

二、具体使用函数:

代码如下(示例):

/*
	每10ms进入一次该函数,检查一下引脚状态
	可以用定时器,也可以用查询
*/
void Key_scan(void)
{
   
	//1 表示高电平,0表示低电平。低电平时按下	
	uint8_t  val = HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin);
	static uint16_t count=0;
	if(!val)//按键按下 记录按下的时间
	{
   
		count++;
	}
	else 
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值