打印
[STM32F1]

按两次这个怎么处理?

[复制链接]
789|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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击。。。。。

使用特权

评论回复
5
pengf| | 2022-3-2 22:37 | 只看该作者
通常都是中断实现  问题不大    楼主

使用特权

评论回复
6
wangpe| | 2022-3-2 22:39 | 只看该作者
用定时器,约定连续按两次的时间,其实就是一个键处理多次,长按、短按、还有多次按

使用特权

评论回复
7
chuxh| | 2022-3-2 22:41 | 只看该作者

首先,完成键盘的扫描程序。
第一点:如果是扫描,就要用到定时器。我想设计定时器每隔10ms扫描一次按键。

使用特权

评论回复
8
renyaq| | 2022-3-2 22:43 | 只看该作者
加一个变量存储按键按下的次数

使用特权

评论回复
9
dengdc| | 2022-3-2 22:46 | 只看该作者

#pragma vector = TIMERA0_VECTOR
__interrupt void TimerA_ISR(void)
{
FlagLcd =GetKey();
}

使用特权

评论回复
10
jiajs| | 2022-3-2 22:49 | 只看该作者
直接IO口按键检处理

使用特权

评论回复
11
renyaq| | 2022-3-2 22:51 | 只看该作者
这个需要检测延时吗?还是直接进行计数。。

使用特权

评论回复
12
chuxh| | 2022-3-2 22:53 | 只看该作者
具体描述你的功能要求,这这个不知道怎么编写呢。

使用特权

评论回复
13
dingy| | 2022-3-2 22:56 | 只看该作者
构造4位串入并出移位寄存器吧

使用特权

评论回复
14
wangpe| | 2022-3-2 22:58 | 只看该作者
用C语言编写吗?编写就是i++就判断。

使用特权

评论回复
15
zhaoxqi| | 2022-3-2 23:00 | 只看该作者
用C语言编写吗?编写就是i++就判断。

使用特权

评论回复
16
dingy| | 2022-3-2 23:06 | 只看该作者
具体要使用的是什么芯片,要多大的驱动。。

使用特权

评论回复
17
huangchui| | 2022-3-2 23:08 | 只看该作者
最简单的就是外部中断处理。

使用特权

评论回复
18
stly|  楼主 | 2022-3-2 23:11 | 只看该作者

计数到2就点亮另外一个LED。

使用特权

评论回复
19
llljh| | 2022-3-2 23:14 | 只看该作者
如果是连续按压的就是需要定时器处理了。

使用特权

评论回复
20
zhenykun| | 2022-3-2 23:17 | 只看该作者
串入端保持1电平,按一次开关,就是输入一个时钟脉冲信号

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝