按键中断灯不亮是什么原因呢?
//外部中断初始化void EXTI_Init(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOA_CLK_ENABLE(); //开启GPIOA时钟
__HAL_RCC_GPIOC_CLK_ENABLE(); //开启GPIOC时钟
__HAL_RCC_GPIOE_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_0; //PA0
GPIO_Initure.Mode=GPIO_MODE_IT_RISING; //上升沿触发
GPIO_Initure.Pull=GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOA,&GPIO_Initure);
GPIO_Initure.Pin=GPIO_PIN_6;
GPIO_Initure.Mode=GPIO_MODE_IT_FALLING; //下降沿触发
GPIO_Initure.Pull=GPIO_PULLUP;
HAL_GPIO_Init(GPIOE,&GPIO_Initure);
//中断线0-PA0
HAL_NVIC_SetPriority(EXTI0_IRQn,2,2); //抢占优先级为2,子优先级为2
HAL_NVIC_EnableIRQ(EXTI0_IRQn); //使能中断线0
//中断线2-PE6
HAL_NVIC_SetPriority(EXTI2_IRQn,2,0); //抢占优先级为2,子优先级为0
HAL_NVIC_EnableIRQ(EXTI2_IRQn); //使能中断线2
}
//中断服务函数
void EXTI0_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); //调用中断处理公用函数
}
void EXTI2_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_6); //调用中断处理公用函数
}
//中断服务程序中需要做的事情
//在HAL库中所有的外部中断服务函数都会调用此函数
//GPIO_Pin:中断引脚号
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
delay_ms(10); //消抖
switch(GPIO_Pin)
{
case GPIO_PIN_0:
if(WK_UP==1)
{
}
break;
case GPIO_PIN_6:
if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_6)==0)
{
Disin_LED=!Disin_LED; //这里只是一个LED灯,我按下PE6的时候这个灯并没有亮是什么原因呢
}
break;
}
}
在main()中调用EXTI_Init();
而且void EXTI2_IRQHandler()这个中断函数并没有触发呢,还是我有什么地方改的不对吗?
GPIO6 中断为啥开 EXTI2? 爱电子辉辉 发表于 2020-9-3 19:37
GPIO6 中断为啥开 EXTI2?
是的哥,以发现了,换成这个就好了EXTI9_5_IRQn
页:
[1]