[HAL库挖坑]外部中断多次进入问题

外部中断多次进入问题:

    新建工程以及设置向这个dalao学习的→→点击打开链接

    但是在学习过程中一直会出现按一次进多次中断的问题,学疏才浅,折腾了很久才解决:

    按钮外部中断有抖动,而消抖没有用:第一次按下,中断标志位置位,进入中断,标志位清零,但是由于按钮抖动,标志位又置位,中断走完,由于标志位没清零,又进入中断,又因为这时候按钮已经不动,不存在抖动,所以第二次中断没有置位标志位,才会进两次中断。

    因此,要在进入中断后清除标志位:    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);

/********************************************************************************************************
* 函数名:HAL_GPIO_EXTI_Callback
* 功  能:外部中断调回函数
* 参  数:
* 返回值: void
* 摘  要: 
********************************************************************************************************/ 
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    HAL_Delay(50);
    if(HAL_GPIO_ReadPin(Ext_button_GPIO_Port,Ext_button_Pin)==1)
    {
	HAL_GPIO_TogglePin(led_GPIO_Port,led_Pin);
	HAL_Delay(100);
    }
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
}

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值