Example #1
0
/**
 * @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();
}
Example #2
0
/*******************************************************************************
 * 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);
    }
}