OpenEdv-开源电子网

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

EXTI15_10外部中断互相影响的问题

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2018-11-26
在线时间
5 小时
发表于 2018-11-26 16:22:58 | 显示全部楼层 |阅读模式
1金钱
用PD11和PD12做按键外部中断,初始化为下拉输入,下降沿触发;按键一端直接接IO,另一端接地;有时候两个中断会相互影响,按PD11的时候,有时候会打印Net Close!,反之也是这个问题
void EXTI15_10_IRQHandler(void)
{
        delay_ms(10);//消抖
        if(EXTI_GetITStatus(EXTI_Line11))              //PD11
        {
                EXTI_ClearITPendingBit(EXTI_Line11);
                Net_Close_Led = 0;
                LCD_ShowString(150,199,72,24,24,"      ");//显示"  "
                LCD_ShowHZ_24(165,199,13);  //显示开
                printf("Net Open!\r\n");
        }
       
        if(EXTI_GetITStatus(EXTI_Line12))      //PD12
        {
                EXTI_ClearITPendingBit(EXTI_Line12);
                Net_Open_Led = 0;
                LCD_ShowString(150,199,72,24,24,"      ");//显示"  "
                LCD_ShowHZ_24(165,199,14);  //显示关
                printf("Net Close!\r\n");               
        }

}
大侠帮忙看看啊,,


最佳答案

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

消抖后再判断标志不妥,失去了消抖的意义, 有抖动的情况下中断标志一定还在,100%会进行中断处理,执行后续动作。 所以应该改为判断引脚电平状态。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4523
金钱
4523
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-11-26 16:22:59 | 显示全部楼层
消抖后再判断标志不妥,失去了消抖的意义,
有抖动的情况下中断标志一定还在,100%会进行中断处理,执行后续动作。
所以应该改为判断引脚电平状态。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2018-11-26
在线时间
5 小时
 楼主| 发表于 2018-11-26 20:21:34 | 显示全部楼层
warship 发表于 2018-11-26 18:38
消抖后再判断标志不妥,失去了消抖的意义,
有抖动的情况下中断标志一定还在,100%会进行中断处理,执行后 ...

有道理,多谢,试试看
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 12:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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