微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 外部中断,循环里小灯为什么总亮呢

外部中断,循环里小灯为什么总亮呢

时间: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 置位 小灯亮了 可按键松开后 在循环里 应该把它熄灭 可还是亮的 不知道咋回事 我的理解有错吗

你的EXTI的中断触发方式是什么

你用gpiob.5做外部中断,中断处理函数名字却是10~15,你的flag不会改变,所以灯一直亮着。仅仅个人观点

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top