打印
[STM32F4]

求教大神!!关于按键产生中断

[复制链接]
1815|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
函数|  楼主 | 2014-12-22 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
板子上的按键KEY2和KEY3对应的是PF11和PC13管脚,都是对应的EXTI15_10_IRQHandler中断,怎么样才能按下KEY2和KEY3产生不同的中断呢???求分享啊~~~~~~~~
沙发
mikebing| | 2014-12-22 16:32 | 只看该作者
不知道LZ在做什么样的应用,我之前遇到这个问题的解决方法就是在IRQHandler里面看到底是key2还是key3导致的中断,再分别调用key2跟key3的函数。但是都是用的同一个IRQHandler

使用特权

评论回复
板凳
函数|  楼主 | 2014-12-22 16:54 | 只看该作者
mikebing 发表于 2014-12-22 16:32
不知道LZ在做什么样的应用,我之前遇到这个问题的解决方法就是在IRQHandler里面看到底是key2还是key3导致的 ...

只是做一个简单的实验,让KEY2按下的时候产生一个中断函数使LED2亮,KEY3按下的时候产生一个中断函数中断使LED3亮,现在的问题是,KEY2和KEY3对应的是同一个中断处理函数 EXTI15_10_IRQHandler,这该怎么办呢?

使用特权

评论回复
地板
EAMCU| | 2014-12-22 16:59 | 只看该作者
        if (EXTI_GetITStatus(EXTI_Line11) != RESET )
        {
                EXTI_ClearITPendingBit(EXTI_Line11);
                //key2                                 
        }
        else if (EXTI_GetITStatus(EXTI_Line13) != RESET )
        {
                EXTI_ClearITPendingBit(EXTI_Line13);
                //key3         
        }

使用特权

评论回复
评论
小班儿 2014-12-22 18:27 回复TA
正解 
5
mikebing| | 2014-12-22 17:42 | 只看该作者
楼上正解

使用特权

评论回复
6
函数|  楼主 | 2014-12-22 19:52 | 只看该作者
mikebing 发表于 2014-12-22 17:42
楼上正解

搞定~~谢啦

使用特权

评论回复
7
函数|  楼主 | 2014-12-22 19:52 | 只看该作者
EAMCU 发表于 2014-12-22 16:59
if (EXTI_GetITStatus(EXTI_Line11) != RESET )
        {
                EXTI_ClearITPendingBit(EXTI_Line11);

搞定~~谢啦

使用特权

评论回复
8
mmuuss586| | 2014-12-22 22:14 | 只看该作者

参考4楼意见,就是靠中断标志位区分的;

使用特权

评论回复
9
菜鸟同学| | 2014-12-23 12:03 | 只看该作者
按键都用中断,是低功耗设备吗?

使用特权

评论回复
10
函数|  楼主 | 2014-12-23 16:12 | 只看该作者
菜鸟同学 发表于 2014-12-23 12:03
按键都用中断,是低功耗设备吗?

我是初学者,很多不懂啊,,,按键只按一次产生一个中断,使LED灯亮,这时我想用延时函数,使得LED灯亮100ms,灭100ms,这样循环,该怎么操作呢?我知道在中断里面延时,长时间不跳出中断肯定是不好的,但是就只是想实现这样的功能,有什么好的办法呢?

使用特权

评论回复
11
mcu5i51| | 2014-12-23 16:23 | 只看该作者
检测引脚变化,这个功能做的不太理想

使用特权

评论回复
12
mikebing| | 2014-12-23 16:25 | 只看该作者
mcu5i51 发表于 2014-12-23 16:23
检测引脚变化,这个功能做的不太理想

求高人指点有何妙招

使用特权

评论回复
13
函数|  楼主 | 2014-12-23 16:48 | 只看该作者
mcu5i51 发表于 2014-12-23 16:23
检测引脚变化,这个功能做的不太理想

没懂,可以说一下具体的方案么?

使用特权

评论回复
14
函数|  楼主 | 2014-12-23 16:50 | 只看该作者
mikebing 发表于 2014-12-23 16:25
求高人指点有何妙招

大神,,可以留个QQ交流下??

使用特权

评论回复
15
菜鸟同学| | 2014-12-25 19:05 | 只看该作者
函数 发表于 2014-12-23 16:12
我是初学者,很多不懂啊,,,按键只按一次产生一个中断,使LED灯亮,这时我想用延时函数,使得LED灯亮10 ...

中断里面延时,这样的程序,基本是没的用的,中断就是硬件的任务,切换,你一直霸占CPU不释放,你的程序框架就是一根筋,动一个牵动一身。简单的东西的好好想想。

使用特权

评论回复
16
elecintop| | 2014-12-28 19:39 | 只看该作者
支持一下

使用特权

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

本版积分规则

8

主题

17

帖子

0

粉丝