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?