Forum: Mikrocontroller und Digitale Elektronik STM32 EXTI auf Pin B12


von Philipp (Gast)


Lesenswert?

Hallo,

ich versuche gerade mit dem STM32 Development Board einen Externen 
Interrupt zu Initialisieren auf Port B 12
hier der Code
1
  GPIO_InitTypeDef GPIO_InitStructure;
2
  EXTI_InitTypeDef EXTI_InitStructure;
3
  NVIC_InitTypeDef NVIC_InitStructure;
4
5
6
  /* Enable the BUTTON Clock */
7
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
8
9
  /* Configure Button pin as input floating */
10
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
11
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_12;
12
  GPIO_Init(GPIOB, &GPIO_InitStructure);
13
14
    /* Connect Button EXTI Line to Button GPIO Pin */
15
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource12);
16
17
    /* Configure Button EXTI line */
18
    EXTI_InitStructure.EXTI_Line = EXTI_Line12;
19
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
20
21
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
22
23
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
24
    EXTI_Init(&EXTI_InitStructure);
25
26
    /* Enable and set Button EXTI Interrupt to the lowest priority */
27
    NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
28
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
29
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
30
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
31
32
    NVIC_Init(&NVIC_InitStructure);
33
34
void EXTI0_IRQHandler(void)
35
{
36
    /* Toggle LED3 */
37
     STM32vldiscovery_LEDToggle(LED3);
38
39
    /* Clear the User Button EXTI line pending bit */
40
    EXTI_ClearITPendingBit(EXTI_Line1);
41
}

Leider passiert bei einer Pegeländerung an Pin B12 gar nix.
Weiß jemand wo der Fehler ist?

von thomasH (Gast)


Lesenswert?

ich glaube du hast den falschen IRQ Handler, der EXTI0_IRQHandler ist ja 
nur für PINx.0
Für die ersten paar Pins gibt es jeweils einen Handler, ich glaube 0-4 
oder so, bei den höheren sind dann mehrere Pins auf den selben Handler 
gemappt ich glaube 5-9 und 10-15 oder so.

von Philipp (Gast)


Lesenswert?

Hallo thomasH

danek für deine Antwort.
Hab den IRQ Handler jetzt auf EXTI15_10_IRQn geändert:
Jetzt Funktioniert es!!

Danke!!!

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.