在线时间613 小时
UID252169
注册时间2010-12-5
NXP金币0
TA的每日心情 | 开心 2019-2-14 16:49 |
---|
签到天数: 296 天 连续签到: 1 天 [LV.8]以坛为家I
金牌会员
 
- 积分
- 4473
- 最后登录
- 2020-4-14
|
MCP为MK60DN512VLQ10
SDK为2.0.0
在进行GPIO口中断实验时遇到如下问题:
IO口为PTE24和PTE25,设置为输入;这两个IO口各外接了按键,默认为高电平,按下后与地短路,形成按键,没有加阻容消抖[也许是问题所在],中断函数为[在GPIO.c中]:
EXTI_Init(PTE,24,falling_up);
EXTI_Init(PTE,25,falling_up);
结果是按下见后确实进入中断,但程序就停止运行了。解决方法试了许多都不管用,其中有意义的是在PORTE_Interupt函数中添加了恢复PTE24,PTE25为1的函数,原中断函数:
void PORTE_Interrupt(){
int n;
n=0;
if((PORTE_ISFR & (1<<n))){
PORTE_ISFR |= (1<<n);
}
n=1;
if((PORTE_ISFR & (1<<n))){
PORTE_ISFR |= (1<<n);
}
}
更改为:
void PORTE_Interrupt(){
int n,i;
n=0;
if((PORTE_ISFR & (1<<n))){
PORTE_ISFR |= (1<<n);
for(i=0;i<50;i++);//相当于延时,下同
GPIO_Ctrl(PORTE,24,1);GPIO_Ctrl(PORTE,25,1);//恢复24,25为1,下同
}
n=1;
if((PORTE_ISFR & (1<<n))){
PORTE_ISFR |= (1<<n);
for(i=0;i<50;i++);
GPIO_Ctrl(PORTE,24,1);GPIO_Ctrl(PORTE,25,1);
}
}
结果也没有任何反应。也试过重新定义开中断也无果。
恳请网友们赐教,应该如何解决此问题——实际上是中断响应按键处理后返回继续的问题,先谢谢了
|
|