OpenEdv-开源电子网

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

有关exti外部中断的求助

[复制链接]

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-1
在线时间
3 小时
发表于 2013-9-24 21:41:18 | 显示全部楼层 |阅读模式
我用的EXTI13进入EXTI15_10_IRQHandler,已经开启GPIOB的RCCAPB外设时钟,设置成推挽输入模式,EXTI13的输入引脚为PB13,PB13_ODR = 1(PB13一直处于高电平状态),EXTI_FTSR设置成下降沿产生中断,EXTI_IMR 13线的中断屏蔽已经清除。按下与PB13相连的按键能正常使灯亮和灭。
但是有这么一个情况,有时候按了一下灯灭一下又按一下,说明按一次按键进去了1次到几次中断。
已经有30ms的按键去抖了
而且如果在30ms之后电平还在抖动,那么会产生一个晚到中断,使得对应的Pending位置为1,但是我在中断服务程序里面已经清除了这个pending位了
问问大家怎么解决,是怎么回事。用原子给的代码产生10ms去抖的那个是不会出现我这种情况的,说明这个按键还是没问题的 

我的中断服务程序的代码是这样的

void EXTI15_10_IRQHandler(void)
{
Delay_ms(30);        //延时30ms去抖
PD(2) = !PD(2);     //控制led灯亮灭
#define EXTI_PR (*(volatile unsigned long*)(0x40010400+0x14))
EXTI_PR = (1<<13); //清中断
#define CLRPND1 (*(volatile unsigned long*)(0xE000E284))
CLRPND1 = (1<<8); //清中断pending
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-24 22:06:01 | 显示全部楼层
我们的就比你的多了一个对比:
delay_ms(10);//消抖
if(KEY2==0)  //按键KEY2
{
LED0=!LED0;
}  
EXTI->R=1<<2;  //清除LINE2上的中断标志位  
if(KEY2==0)这是关键,判断此时的GPIO状态,是不是0,你可以试着加入这样一个判断,再试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-1
在线时间
3 小时
 楼主| 发表于 2013-9-24 22:52:17 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
好了。。。就是这个。。。稍微解决了这个问题。。。但是还是会重进中断。。。谢啦~
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-1
在线时间
3 小时
 楼主| 发表于 2013-9-24 23:37:49 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
还有。。。为什么我在用单片机来控制电平的时候,不能开启GPIOB的APB时钟?如果开了AHB时钟的话我用万用表测过,单片机上那个控制电平的引脚的电压就是stm32EXTI对应引脚的电压。。。不能得到相应的结果
但是我将时钟关掉之后就ok了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-24 23:47:52 | 显示全部楼层
回复【4楼】lwp513:
---------------------------------
具体点。
或者仿真看看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 23:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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