/** * @brief This function handles EXTI2_IRQ or EXTI_9_5_IRQ Handler. * @param None * @retval None */ void Mode_Button_EXTI_irq(void) { void (*chain)(void) = (void (*)(void))((uint32_t*)&link_interrupt_vectors_location)[ButtonExtiIndex]; Handle_Mode_Button_EXTI_irq(); chain(); }
/******************************************************************************* * Function Name : EXTI9_5_IRQHandler * Description : This function handles EXTI9_5 interrupt request. * Input : None * Output : None * Return : None *******************************************************************************/ void EXTI9_5_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line5) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line5); HAL_EXTI_Handler(5); } if (EXTI_GetITStatus(EXTI_Line6) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line6); HAL_EXTI_Handler(6); } if (EXTI_GetITStatus(EXTI_Line7) != RESET) { Handle_Mode_Button_EXTI_irq(); } if (EXTI_GetITStatus(EXTI_Line8) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line8); HAL_EXTI_Handler(8); } if (EXTI_GetITStatus(EXTI_Line9) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line9); HAL_EXTI_Handler(9); } }