Hoi Leute,
wie der Betreff sagt, ich versuche am STM32F107 mit CoIDE einen
Interrupt am PB11 zu erzeugen.
Es sollen beide Flanken ermittelt werden und dann will ich das Signal
Hi/LO ausgeben.
Das Ergebnis ist, das nicht einmal bei Flanke eine UART-Ausgabe kommt,
sondern ununterbrochen. Die UART-Ausgabe selbst funktioniert. ALso
scheint er immer wieder in den INT zu springen, aber warum?
Jemand eine Idee?
1 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
|
2 |
|
3 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;// | GPIO_Pin_9 | GPIO_Pin_8;
|
4 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
5 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
6 | GPIO_Init( GPIOB , &GPIO_InitStructure);
|
7 |
|
8 | GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource11);
|
9 |
|
10 | EXTI_InitStructure.EXTI_Line = EXTI_Line0;
|
11 | EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
|
12 | EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
|
13 | EXTI_InitStructure.EXTI_LineCmd = ENABLE;
|
14 | EXTI_Init(&EXTI_InitStructure);
|
15 |
|
16 | NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
|
17 |
|
18 | NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
|
19 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
20 | NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
|
21 | NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
|
22 | NVIC_Init(&NVIC_InitStructure);
|
23 |
|
24 | void EXTI0_IRQHandler(void)
|
25 | {
|
26 | EXTI_ClearITPendingBit(EXTI_Line0);
|
27 |
|
28 | uint8_t u08EELoad = GPIO_ReadInputDataBit( GPIOB, GPIO_Pin_11);
|
29 |
|
30 | { // DIAG
|
31 | uint8_t au8E2Load[] = "esc eeprom = 0x00\r\n";
|
32 | u08toHex( &au8E2Load[15], u08EELoad );
|
33 | stm32_rs232_send( sizeof(au8E2Load)-1, &au8E2Load );
|
34 | }
|
35 | }
|