Forum: Mikrocontroller und Digitale Elektronik Welche EXTI Line für GPIO Interrupt?


von Johannes B. (groovycat)


Lesenswert?

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?

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.