OpenEdv-开源电子网

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

探索者 外部中断工作模式只能是上升沿有效,改不了。。。。

[复制链接]

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2017-9-16
在线时间
19 小时
发表于 2018-1-15 21:00:54 | 显示全部楼层 |阅读模式
3金钱

还请各位大佬指教一下,怎么设置成下降沿有效。。。。。多谢各位大佬了



        EXTI_InitStruct.EXTI_Line=EXTI_Line2;
        EXTI_InitStruct.EXTI_LineCmd=ENABLE;
        EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;
        EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Rising_Falling;////////这段是设置外部中断是上升沿有效还是下降沿有效的,我试了3种模式,都是在按键按下在松手后才会反应。
        EXTI_Init(&EXTI_InitStruct);


下面的事库函数里面关于上升沿还是下降沿触发的枚举
typedef enum
{
  EXTI_Trigger_Rising = 0x08,
  EXTI_Trigger_Falling = 0x0C,  
  EXTI_Trigger_Rising_Falling = 0x10
}EXTITrigger_TypeDef;

#define IS_EXTI_TRIGGER(TRIGGER) (((TRIGGER) == EXTI_Trigger_Rising) || \
                                  ((TRIGGER) == EXTI_Trigger_Falling) || \
                                  ((TRIGGER) == EXTI_Trigger_Rising_Falling))


这是我的中断服务函数
void EXTI2_IRQHandler ()
{
        delay_ms(10);
        if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2))
        {
                EXTI_ClearITPendingBit(EXTI_Line2);
                if(GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_9))
                        GPIO_ResetBits(GPIOF,GPIO_Pin_9);  //LED亮
                else
                        GPIO_SetBits(GPIOF,GPIO_Pin_9);    //LED灭
        }
}



最佳答案

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

我能删帖吗。。。。。。。我错了是我的错,忘了里面还一个判断。。。。不好意思各位
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2017-9-16
在线时间
19 小时
 楼主| 发表于 2018-1-15 21:00:55 | 显示全部楼层
我能删帖吗。。。。。。。我错了是我的错,忘了里面还一个判断。。。。不好意思各位
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-19 22:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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