常用HAL库函数:
GPIO_InitStruct.Pin = GPIO_PIN_4; //外部中断PIN号
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; //外部中断上升沿触发
GPIO_InitStruct.Pull = GPIO_PULLUP; //开启上拉
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0);//设置中断优先级
HAL_NVIC_EnableIRQ(EXTI4_IRQn);//使能中断
GPIO_InitStruct.Pin = GPIO_PIN_5; //外部中断PIN号
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; //外部中断下降沿触发
GPIO_InitStruct.Pull = GPIO_PULLUP; //开启上拉
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);//设置中断优先级
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);//使能中断
示例代码:
实验验证: