[STM32F4]

按下KEY2和KEY3产生不同的中断

[复制链接]
693|21
手机看帖
扫描二维码
随时随地手机跟帖
dengdc|  楼主 | 2018-10-20 11:38 | 显示全部楼层 |阅读模式
板子上的按键KEY2和KEY3对应的是PF11和PC13管脚,都是对应的EXTI15_10_IRQHandler中断,怎么样才能按下KEY2和KEY3产生不同的中断呢???求分享啊~~~~~~~~
zhenykun| | 2018-10-20 11:41 | 显示全部楼层
不知道LZ在做什么样的应用,我之前遇到这个问题的解决方法就是在IRQHandler里面看到底是key2还是key3导致的中断,再分别调用key2跟key3的函数。

使用特权

评论回复
jlyuan| | 2018-10-20 11:44 | 显示全部楼层

但是都是用的同一个IRQHandler

使用特权

评论回复
dengdc|  楼主 | 2018-10-20 11:50 | 显示全部楼层
只是做一个简单的实验,让KEY2按下的时候产生一个中断函数使LED2亮,KEY3按下的时候产生一个中断函数中断使LED3亮,现在的问题是,KEY2和KEY3对应的是同一个中断处理函数 EXTI15_10_IRQHandler,这该怎么办呢?

使用特权

评论回复
lizye| | 2018-10-20 11:52 | 显示全部楼层

if (EXTI_GetITStatus(EXTI_Line11) != RESET )
        {
                EXTI_ClearITPendingBit(EXTI_Line11);
                //key2                                 
        }
        else if (EXTI_GetITStatus(EXTI_Line13) != RESET )
        {
                EXTI_ClearITPendingBit(EXTI_Line13);
                //key3         
        }

使用特权

评论回复
spark周| | 2018-10-20 11:55 | 显示全部楼层
按键都用中断,是低功耗设备吗?

使用特权

评论回复
dengdc|  楼主 | 2018-10-20 11:58 | 显示全部楼层
按键只按一次产生一个中断,使LED灯亮,这时我想用延时函数,使得LED灯亮100ms,灭100ms,这样循环,该怎么操作呢?我知道在中断里面延时,长时间不跳出中断肯定是不好的,但是就只是想实现这样的功能,有什么好的办法呢?

使用特权

评论回复
huangchui| | 2018-10-20 12:00 | 显示全部楼层

检测引脚变化,这个功能做的不太理想

使用特权

评论回复
wyjie| | 2018-10-20 12:03 | 显示全部楼层
中断里面延时,这样的程序,基本是没的用的,中断就是硬件的任务,切换,你一直霸占CPU不释放,你的程序框架就是一根筋,动一个牵动一身。简单的东西的好好想想。

使用特权

评论回复
yszong| | 2018-10-20 12:06 | 显示全部楼层
有一个寄存器是控制中断来源的

使用特权

评论回复
heweibig| | 2018-10-20 12:09 | 显示全部楼层
中断里面延时是大忌

使用特权

评论回复
jiahy| | 2018-10-20 12:12 | 显示全部楼层
进入中断后,通过位操作判断到底是哪个管脚的中断。

使用特权

评论回复
juventus9554| | 2018-10-20 12:14 | 显示全部楼层

if (EXTI_GetITStatus(EXTI_Line11) != RESET )
        {
                EXTI_ClearITPendingBit(EXTI_Line11);
                //key2                                 
        }
        else if (EXTI_GetITStatus(EXTI_Line13) != RESET )
        {
                EXTI_ClearITPendingBit(EXTI_Line13);
                //key3         
        }

使用特权

评论回复
llljh| | 2018-10-20 12:19 | 显示全部楼层
检测引脚电平变化

使用特权

评论回复
pengf| | 2018-10-20 12:22 | 显示全部楼层

进入中断后再判断啊。

使用特权

评论回复
zhaoxqi| | 2018-10-20 12:25 | 显示全部楼层
中断里面不要延时,占着CPU不干活

使用特权

评论回复
dengdc|  楼主 | 2018-10-20 12:28 | 显示全部楼层
嗯,预料中的结果,先结贴吧,多谢大家啦

使用特权

评论回复
晓伍| | 2018-10-22 11:17 | 显示全部楼层
判断是哪个引脚的就可以啊

使用特权

评论回复
八层楼| | 2018-10-22 12:03 | 显示全部楼层
在中断函数里边判断标志位

使用特权

评论回复
观海| | 2018-10-22 12:09 | 显示全部楼层
用if语句判断一下是哪个引脚就可以呀

使用特权

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

本版积分规则

892

主题

13885

帖子

7

粉丝