mbedmicro/mbed — pull request #495 by ohagendorf (2014-09-18 12:36:01+00:00)
Title: [NUCLEO_F4x1RE] test MBED_A7 InterruptIn failed

The test failed because it was not possible to switch off an already active edge detection. The 2nd part of the test tries to switch of falling edge detection and activates raising edge detection. This failed and both edged detection were active.

The reason is the GPIO HAL module driver function HAL_GPIO_Init. The function changes only interrupt or event flags when the EXTI_MODE flag in GPIO_Init->Mode is set. gpio_irq_set changed the event mode to EDGE_NONE in gpio_irq_t structure but that doesn't influenced the interrupt and event flags in the CMSIS function because of the missing EXTI_MODE flag.

Now gpio_irq_set is able to switch off a specific or both edge detections.

The MBED_A7 test was extended by another part to check if switch off edge detection is OK.