Guten Morgen,
leider will mein GPIO auf eine steigende Flanke nicht reagieren obwohl
(mit Oszi gemessen) ein klarer Takt mit ca. 500Hz am GPIO anliegt
(zwischen 0 und 3.3V) - auch wenn ich mit einem Jumper Wire manuell
einen Kontakt zu 3.3V herstelle wird der Interrupt nicht angesprungen.
Die Konfiguration sieht wie folgt aus:
1 | GPIO_InitTypeDef drdy_typedef;
|
2 | drdy_typedef.Pin = GPIO_PIN_15;
|
3 | drdy_typedef.Mode = GPIO_MODE_IT_FALLING;
|
4 | drdy_typedef.Pull = GPIO_NOPULL;
|
5 | HAL_GPIO_Init(GPIOD, &drdy_typedef);
|
6 |
|
7 | /* EXTI interrupt init*/
|
8 | HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
|
9 | HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
|
Das ist die Interrupt-Routine:
1 | void EXTI15_10_IRQHandler(void) {
|
2 |
|
3 | std::cout << "Toggle\r\n";
|
4 | HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
|
5 | HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_15);
|
6 |
|
7 | }
|
Hat jemand eine Idee, warum das nicht tut?