OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9820|回复: 6

处女贴,问个中断按键问题哈!

[复制链接]

10

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
338
金钱
338
注册时间
2015-1-24
在线时间
55 小时
发表于 2015-1-24 17:04:18 | 显示全部楼层 |阅读模式
5金钱
板子是407 开了外部中断 按键扫描也开着。
但是一旦外部中断进了一次后,其他的按键扫描就 时而 不能用了。
我 发现把 中断里面 判断 按键按了下去这句 if(KEY0 == 0) 。 屏蔽掉 就不会出现这种问题了 请问是什么原因?

最佳答案

查看完整内容[请看2#楼]

那可能是程序的bug吧。在退出if(EXTI_GetITStatus(EXTI_Line0) != RESET)之前都需要清除中断标志的。你使能了几个外部中断啊?不使用的需要屏蔽。
学无止境
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1863
金钱
1863
注册时间
2011-3-29
在线时间
139 小时
发表于 2015-1-24 17:04:19 | 显示全部楼层
那可能是程序的bug吧。在退出if(EXTI_GetITStatus(EXTI_Line0) != RESET)之前都需要清除中断标志的。你使能了几个外部中断啊?不使用的需要屏蔽。
业余程序玩家。
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5757
金钱
5757
注册时间
2013-11-22
在线时间
1208 小时
发表于 2015-1-24 23:04:29 | 显示全部楼层
同时用中断和扫描的方式检测按键?   
产生干扰了吧   用其中一种方式就行了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-1-24 23:06:25 | 显示全部楼层
仿真跟踪下代码,看看为什么.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
338
金钱
338
注册时间
2015-1-24
在线时间
55 小时
 楼主| 发表于 2015-1-25 12:14:02 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------最后发现是这个差别
void EXTI0_IRQHandler(void)
{
delay_ms(10); //消抖
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
{
if(WAKE_UP == 1)
{
LED0=!LED0;
LED1=!LED1;  
EXTI_ClearITPendingBit(EXTI_Line0);//清除LINE0上的中断标志位 
}

}
}

把   清楚终端标志位 这句   放在IF判断之外就不会出现这种情况了。放在里面就会出现那种情况,原子哥这是怎么回事,IF里面的程序有执行到
学无止境
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2013-10-24
在线时间
6 小时
发表于 2015-1-25 20:52:12 | 显示全部楼层
mark  mark
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-1-29
在线时间
0 小时
发表于 2015-1-29 15:46:33 | 显示全部楼层
回复【4楼】n85gzj:
---------------------------------
要养成习惯,每次进中断第一句话就要清中断标志位,否则可能重复进中断
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 02:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表