RTS und CTS bei STM32 - HAL-Bib

Gast #4810261
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!
#4810272
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.
Gast #4810397
... 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?
#4810414
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.