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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von STM32 (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.