还请各位大佬指教一下,怎么设置成下降沿有效。。。。。多谢各位大佬了
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灭
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>