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?
Johannes B. schrieb: > Welches EXTI-Interrupt muss ich also für den PB11 zuweisen, oder ist das > überhaupt möglich? EXTI15_10_IRQn Ab 5 aufwärts sind immer mehrere Pins zusammengefasst. Das ist in der Tat irgendwie sehr eigenwillig gelöst bei STM32Fxxx.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.