Forum: Mikrocontroller und Digitale Elektronik STM32F4 USART


von andre (Gast)


Lesenswert?

Hallo,
Ich versuche grade das Beispiel von UWE B.
https://mikrocontroller.bplaced.net/wordpress/?page_id=223 unter Keil 
zum Laufen zu bekommen aber ich bekomme immer den Fehler
.\Obj\SOM-STM32F429IG.axf: Error: L6200E: Symbol UART_RX multiply 
defined (by stm32_ub_uart.o and main.o).

Es ist alles richtig eingebunden.
was mache ich hier falsch?
1
#include "main.h"
2
#include "stm32_ub_uart.h"
3
 
4
int main(void)
5
{
6
  char buf[RX_BUF_SIZE]; // puffer fuer Datenempfang
7
  UART_RXSTATUS_t check;
8
 
9
  SystemInit(); // Quarz Einstellungen aktivieren
10
 
11
  // Init der UARTs
12
  // Com2 und Com3 mit je 115200 Baud
13
  UB_Uart_Init();
14
 
15
  // Zwei String per UART senden (mit LineFeed+CarriageReturn)
16
  UB_Uart_SendString(COM2,"Hier ist UART2 [PA2,PA3]",LFCR);
17
  UB_Uart_SendString(COM3,"Hier ist UART3 [PD8,PD9]",LFCR);
18
 
19
  while(1)
20
  {
21
    // check ob Daten an UART2 empfangen werden
22
    check=UB_Uart_ReceiveString(COM2,buf);
23
    if(check==RX_READY) {
24
      // wenn Daten empfangen wurden
25
      // als Echo wieder zurücksenden
26
      UB_Uart_SendString(COM2,buf,LFCR);
27
    }
28
  }
29
}

von Stefan F. (Gast)


Lesenswert?

Vermutlich fehlen in der Datei stm32_ub_uart.h ein paar Zeilen dieser 
Art:
1
#ifndef irgendwas
2
#define irgendwas
3
4
... Inhalt der Datei
5
6
#endif

von andre (Gast)


Angehängte Dateien:

Lesenswert?

Stefan F. schrieb:
> Vermutlich fehlen in der Datei stm32_ub_uart.h ein paar Zeilen
> dieser
> Art:
> #ifndef irgendwas
> #define irgendwas
>
> ... Inhalt der Datei
>
> #endif

siehe Anhang

von Stefan F. (Gast)


Lesenswert?

Wie sieht die main.h aus?

Guck mal nach, ob UART_RX in irgendeiner anderen Quelltext Datei (außer 
in stm32_ub_uart.h und stm32_ub_uart.c) noch vorkommt. Wenn ja, hast du 
einen simplen Namenskonflikt, dann musst du eben den Namen des Puffers 
ändern.

von STK500-Besitzer (Gast)


Lesenswert?

andre schrieb:
> .\Obj\SOM-STM32F429IG.axf: Error: L6200E: Symbol UART_RX multiply
> defined (by stm32_ub_uart.o and main.o).

Da du Keil verwendest kannst du "UART_RX multiply" in deinem kompletten 
Projekt nach dieser Buchstabenfolge suchen lassen.
Irgendwo (in einer .h-Datei) wird da ein "extern" fehlen.

von Stefan F. (Gast)


Lesenswert?

Ich würde lieber nach "UART_RX" suchen.

von andre (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> andre schrieb:
>> .\Obj\SOM-STM32F429IG.axf: Error: L6200E: Symbol UART_RX multiply
>> defined (by stm32_ub_uart.o and main.o).
>
> Da du Keil verwendest kannst du "UART_RX multiply" in deinem kompletten
> Projekt nach dieser Buchstabenfolge suchen lassen.
> Irgendwo (in einer .h-Datei) wird da ein "extern" fehlen.

das wars
Vielen Dank

von STK500-Besitzer (Gast)


Lesenswert?

Stefan F. schrieb:
> Ich würde lieber nach "UART_RX" suchen.

Dass man die Suchbegriffe immer weiter universalisieren kann, sollte 
jedem klar sein. Es ging mir eher um das "extern".
Der Linker hat ja schon die problematische Variable angezeigt.

Hat ja auch funktioniert.

von MaWin (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> UART_RX multiply

Das Multi... gehört zur Fehlermeldung und nicht zumSymbol. Du wirst es 
im Quelltext nicht finden.

von STK500-Besitzer (Gast)


Lesenswert?

MaWin schrieb:
> Das Multi... gehört zur Fehlermeldung und nicht zumSymbol. Du wirst es
> im Quelltext nicht finden.

Argl! Sorry, ADHS-Anfall!

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.