Hallo,
ich möchte mit der Cube HAL für einen STM32F4 einen GPIO mit externem
Interrupt konfigurieren:
GPIO_InitTypeDef GPIO;
GPIO.Mode = GPIO_MODE_IT_RISING_FALLING;
GPIO.Pull = GPIO_NOPULL;
GPIO.Pin = GPIO_PIN_11;
HAL_GPIO_Init(GPIOB, &GPIO);
HAL_NVIC_SetPriority(EXTI0_IRQn, 2, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
Nun bin ich mir nicht sicher, welches EXTI Interrupt das richtige ist.
Zur Auswahl stehen:
EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt*/
EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt*/
EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt*/
EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt*/
EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt*/
Soweit ich weiß, gibt es für jede Pin-Nummer ein eigenes EXTI-Interrupt,
d.h. EXTI0_IRQn für Pins mit der Nummer 0, EXTI1_IRQn für Pins mit der
Nummer 1 und so weiter. Nun sind aber nur EXTI Lines von 0 bis 4
definiert, was bedeuten würde, dass nur die GPIOs 0 bis 4 mit einem
Interrupt verknüpft werden können.
In der standard peripheral library waren die EXTI Interrupts anders
definiert:
EXTI0_IRQn
EXTI1_IRQn
EXTI2_IRQn
EXTI3_IRQn
EXTI4_IRQn
EXTI9_5_IRQn
EXTI15_10_IRQn
Wie man sieht, gibt hier nach der 4 auch Definitionen für die Pins 5 bis
9 und die Pins 10 bis 15. So kann jeder GPIO mit einem EXTI Interrupt
konfiguriert werden.
Welches EXTI-Interrupt muss ich also für den PB11 zuweisen, oder ist das
überhaupt möglich?