外部中断,循环里小灯为什么总亮呢
时间:10-02
整理:3721RD
点击:
作为一名初学者 ,希望大家给以指导 ...谢谢了
按下按键 进入中断后 flag 置位 小灯亮了 可按键松开后 在循环里 应该把它熄灭 可还是亮的 不知道咋回事 我的理解有错吗void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line10) != RESET)
{
EXTI_ClearFlag(EXTI_Line10);
EXTI_ClearITPendingBit(EXTI_Line10);
//GPIO_WriteBit(GPIOB,GPIO_Pin_0 ,1- GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_0));
flag=1;
}
}
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
EXTI_Configuration();
while (1)
{
if(flag)
{
flag=0;
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_ms(10);
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_0);
}
}
}
作为一名初学者 ,希望大家给以指导 ...谢谢了
按下按键 进入中断后 flag 置位 小灯亮了 可按键松开后 在循环里 应该把它熄灭 可还是亮的 不知道咋回事 我的理解有错吗
按下按键 进入中断后 flag 置位 小灯亮了 可按键松开后 在循环里 应该把它熄灭 可还是亮的 不知道咋回事 我的理解有错吗void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line10) != RESET)
{
EXTI_ClearFlag(EXTI_Line10);
EXTI_ClearITPendingBit(EXTI_Line10);
//GPIO_WriteBit(GPIOB,GPIO_Pin_0 ,1- GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_0));
flag=1;
}
}
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
EXTI_Configuration();
while (1)
{
if(flag)
{
flag=0;
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_ms(10);
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_0);
}
}
}
作为一名初学者 ,希望大家给以指导 ...谢谢了
按下按键 进入中断后 flag 置位 小灯亮了 可按键松开后 在循环里 应该把它熄灭 可还是亮的 不知道咋回事 我的理解有错吗
你的EXTI的中断触发方式是什么
你用gpiob.5做外部中断,中断处理函数名字却是10~15,你的flag不会改变,所以灯一直亮着。仅仅个人观点