Hallo,
ich möchte sobald ein Impuls auf dem Port C, Pin0 vorhanden ist, eine
LED je nach Zustand an- bzw. ausgeschaltet wird. Verwendet wird der
STM32F303.
Das Problem ist, dass bei der Interrupt-Handler-Funktion "void
EXTI0_IRQn(void)" die Fehlermeldung auftaucht: "'EXTI0_IRQn' redeclared
as different kind of symbol".
Aber diesen Namen finde ich so in der Library "stm32f30x.h".
Ich bin für jeden Rat und Tipp dankbar!
1 | void external_clock_detection_Configuration(void)
|
2 | {
|
3 | RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
|
4 | RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);
|
5 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
|
6 |
|
7 | GPIO_InitTypeDef GPIO_InitStructure;
|
8 | EXTI_InitTypeDef EXTI_InitStructure;
|
9 |
|
10 | // external Clock should be detected on Port C, Pin0
|
11 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
|
12 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
|
13 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
14 | GPIO_Init(GPIOC, &GPIO_InitStructure);
|
15 |
|
16 | SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource0);
|
17 |
|
18 | EXTI_InitStructure.EXTI_Line = EXTI_Line0;
|
19 | EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
|
20 | EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
|
21 | EXTI_InitStructure.EXTI_LineCmd = ENABLE;
|
22 | EXTI_Init(&EXTI_InitStructure);
|
23 | }
|
24 |
|
25 | void EXTI0_IRQn(void)
|
26 | {
|
27 | EXTI_ClearITPendingBit(EXTI_Line0);
|
28 | // blinking LED:
|
29 | if(GPIO_ReadOutputDataBit(GPIOE, GPIO_Pin_8)){
|
30 | GPIO_WriteBit(GPIOE, GPIO_Pin_8, RESET);
|
31 | }else
|
32 | {
|
33 | GPIO_WriteBit(GPIOE, GPIO_Pin_8, SET);
|
34 | }
|
35 | }
|