[STM32F1] 按两次这个怎么处理?

[复制链接]
 楼主| stly 发表于 2022-3-2 22:27 | 显示全部楼层 |阅读模式
我想用按键控制LED,按键按一次是这个灯亮,连续按两次是另外一个灯亮。不知道编程要怎么编,
xxrs 发表于 2022-3-2 22:30 | 显示全部楼层
把按键做为一个外部中断就行 反复地读端口的电平值
morrisk 发表于 2022-3-2 22:35 | 显示全部楼层
检测到第一次按键按下后启动定时器,如果没有溢出即检测到第二次按下则亮灯一,若溢出还未检测到则亮灯二
moticsoft 发表于 2022-3-2 22:36 | 显示全部楼层
实现单击肯定是没问题的。实现双击的一种思路:单击按键放开后,一段时间内检测有没有按键按下,比如300ms,如果300ms内没有键按下,则为单击,否则就是双击。以此类推,可以实现3/4/56击。。。。。
pengf 发表于 2022-3-2 22:37 | 显示全部楼层
通常都是中断实现  问题不大    楼主
wangpe 发表于 2022-3-2 22:39 | 显示全部楼层
用定时器,约定连续按两次的时间,其实就是一个键处理多次,长按、短按、还有多次按
chuxh 发表于 2022-3-2 22:41 | 显示全部楼层

首先,完成键盘的扫描程序。
第一点:如果是扫描,就要用到定时器。我想设计定时器每隔10ms扫描一次按键。
renyaq 发表于 2022-3-2 22:43 | 显示全部楼层
加一个变量存储按键按下的次数
dengdc 发表于 2022-3-2 22:46 | 显示全部楼层

#pragma vector = TIMERA0_VECTOR
__interrupt void TimerA_ISR(void)
{
FlagLcd =GetKey();
}
jiajs 发表于 2022-3-2 22:49 | 显示全部楼层
直接IO口按键检处理
renyaq 发表于 2022-3-2 22:51 | 显示全部楼层
这个需要检测延时吗?还是直接进行计数。。
chuxh 发表于 2022-3-2 22:53 | 显示全部楼层
具体描述你的功能要求,这这个不知道怎么编写呢。
dingy 发表于 2022-3-2 22:56 | 显示全部楼层
构造4位串入并出移位寄存器吧
wangpe 发表于 2022-3-2 22:58 | 显示全部楼层
用C语言编写吗?编写就是i++就判断。
zhaoxqi 发表于 2022-3-2 23:00 | 显示全部楼层
用C语言编写吗?编写就是i++就判断。
dingy 发表于 2022-3-2 23:06 | 显示全部楼层
具体要使用的是什么芯片,要多大的驱动。。
huangchui 发表于 2022-3-2 23:08 | 显示全部楼层
最简单的就是外部中断处理。
 楼主| stly 发表于 2022-3-2 23:11 | 显示全部楼层

计数到2就点亮另外一个LED。
llljh 发表于 2022-3-2 23:14 | 显示全部楼层
如果是连续按压的就是需要定时器处理了。
zhenykun 发表于 2022-3-2 23:17 | 显示全部楼层
串入端保持1电平,按一次开关,就是输入一个时钟脉冲信号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部