2020-06-08 08:32 AM
Hi guys,
I want to use 10 external interrupts. 9 of them are working fine, but one of it makes trouble.
I'm using CubeMX and configured the 10 pins as external interupt with falling edge detection and enabled the interrupts. The pins are: PB6, PB7, PF0, PF1, PF2, PF14, PF15, PI9, PI10 and PI11.
Interrupt on PF0 is handled with EXTI0_IRQHandler() and works fine, PF1 with EXTI1_IRQHandler() works fine, PF2 with EXTI2_IRQHandler works fine, PB6, PB7 and PI9 are handled with EXTI9_5_IRQHandler() and works fine and finaly, PI10, PI11, PF14 and PF15 should be handled with EXTI15_10_IRQHandler(). It works for PI11, PF14 and PF15, but PI10 is not working.
First I was thinking about an hardware issue, so I checked the falling edge with the oscilloscope and it looks fine.
Then I checked the register.
GPIOI_IDR: When the signal on the pin is high (3,3V), IDR10 is 1, when its low (0V) its 0. So there should not be a hardware or connection issue.
MODER10 in the GPIOI_MODER register is 0 (the pin is configured as input).
The bit MR10 in the EXTI_IMR is 1. The bit TR10 in the FTSR register is also 1.
Any ideas what I could check next or where my mistake could be?
Thank you
Solved! Go to Solution.
2020-06-08 09:13 AM
2020-06-08 08:43 AM
Is the pin perhaps remapped?
2020-06-08 08:53 AM
The bits AFRH10 (bit 11 to 8 in register GPIOI_AFRH) are all 0.
2020-06-08 09:13 AM
So, I found the issue. Its mentioned in the Errata Sheet:
2020-06-08 09:19 AM
If nothing else works, read the fine errata sheet ;)
2020-06-08 09:31 AM
+1