Kann USART für STM32 nicht in externem file benutzen. Wie Handle einbinden?

Gast #6626724
Lesenswert?

Hallo Zusammen,

ich habe ein Projekt mit STM32 und STM32CUBE IDE.

Ich habe die komplette Konfiguration für den MCU über die CUBE IDE 
erstellt. Nun möchte ich alle UART verwendenden Funktionen in eine 
UART_Funktionen.c mit der entsprechenden .h verschieben.
Die Dateien sind korrekt eingebunden und Code in den Dateien wird auch 
kompiliert.

Leider kann ich in den externen Dateien keinen UART verwenden, da im 
HAL_UART_Transmit_IT der Handle (&huart2) auf die entsprechende TypeDef 
nicht gefunden wird.
Was muss ich noch einbinden? Wo wird der Handle definiert?

Viele Grüße und Danke
Mike
Gast #6627064
Lesenswert?

>Wo wird der Handle definiert?
in der main.c
>Was muss ich noch einbinden?
in deiner uart.h
#include "main.h"
zur Not auch nur die .h, in der der Datentyp UART_HandleTypeDef 
deklariert wird.

in deiner uart.c entweder global oder in jeder Fuktion, die huart2 
verwendet:
extern UART_HandleTypeDef huart2;

> musst Du die in einem h-file selber als extern deklarieren.
Im h-File ist ganz schlechter Stil, das ist eine Variable, die gehört in 
kein h-File!
Gast #6627778
Lesenswert?

pegel schrieb:
> Kann es sein, dass nur ein Häkchen fehlt?
>
> Dann wird alles schön getrennt.

Perfekt, das ist genau das, was ich gesucht habe. Dann wird die main.c 
auch übersichtlicher.
Vielen Dank!

Danke auch an alle anderen Kommentatoren :-)

Schönes WE euch!

Mike

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