STM32 EXTI auf Pin B12

Gast #2627516
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?
Gast #2627532
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren