Forum: Mikrocontroller und Digitale Elektronik RTS und CTS bei STM32 - HAL-Bib


von STM32 (Gast)


Lesenswert?

Hallo,

ich hätte mal eine generelle Frage zur Verwendung der HAL-Bibliothek von 
ST-Micro in Punkto Hardware-Flow-Control bei Nutzung des Uart.

Wenn ich HW-Flowcontrol aktiviere, setzt die Bib die CTS und RTS Leitung 
dann automatisch auf blockiert, solange bis ich eine der verfügbaren 
Receive- bzw. Transmitfunktionen aufrufe,
und lässt die Bib dies Leitungen dann auf dem Level, bis die 
entsprechende Menge an Bytes empfangen wurden oder das einstellbare 
Timeout auftritt?

...oder wie sonst funktionieren diese Bestandteile?

Danke!

von (prx) A. K. (prx)


Lesenswert?

Die Hardware-Referenz enthält ein Kapitel dazu. Um die STM32 zu 
verstehen reicht es nicht, die Doku vom HAL zu lesen. Man muss auch die 
Hardware verstanden haben und dafür gibts die Referenz.

Der HAL ist eher selten das, was der Name suggeriert. Weil nicht 
wirklich abstrahiert sondern bloss umbenannt wird. Aus einer sauberen 
Registerbeschreibung werden ein paar nicht immer sauber beschriebene 
Funktionen und Strukturen des HAL. Die Funktionalität des HAL entspricht 
oft 1:1 der Funktionalität der Hardware, nur mit anderem Namen und 
anderer Zugriffsweise.

: Bearbeitet durch User
von STM32 (Gast)


Lesenswert?

... ich möchte dass mein Receiver an bestimmten Stellen den Datenfluss 
bremst.
Da ich keine direkte Funktion finde, die RTS und CTS steuern, kann ich 
einfach den Pin anheben und wichtiger noch, welchen muss ich eigentlich 
manipulieren?

Empfängerseitig will ich eine Verzögerung haben, muss ich nun auf seiten 
des Empfängers den RTS oder den CTS Pin setzen und auf 0 oder auf 1?

von (prx) A. K. (prx)


Lesenswert?

STM32 schrieb im Beitrag #4810397:
> ... ich möchte dass mein Receiver an bestimmten Stellen den Datenfluss
> bremst.

Hardware-Flowcontrol bedeutet, dass die Steuerung automatisch erfolgt. 
Nur wenn der Receiver noch Platz im Puffer hat, gibt er den Transmitter 
des Gegenübers frei (RTSE). Der Transmitter sendet nur, wenn er darf 
(CTSE)

Wenn du das zur Hälfte selber machen willst, dann reicht eben eine 
Hälfte davon, nämlich CTSE. RTSE lässt du dann weg und steuerst diesen 
Pin ganz gewöhnlich per GPIO. Genau deshalb sind diese beiden Funktionen 
in den Registern getrennt aktivierbar.

> Da ich keine direkte Funktion finde, die RTS und CTS steuern,

Das ergibt auch keinen Sinn. Hardware-Flowcontrol bedeutet ja grad, dass 
du es nicht selber machen willst.

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.