STM32 Uart Senden stoppen

Gast #2169888
Lesenswert?

Hallo,

ich habe folgendes Problem, ich möchte bei einer bestimmten Bedingung 
das Senden des UART stoppen. Wie kann ich das elegant lösen.

Ich dachte daran das TXE Flag auf 0 zu setzen. Ich weiss jedoch nicht, 
ob das funktioniert und wie ich ein Flag setzen oder löschen kann.

Hat da jemand einen Tip für mich?

Gruß
paule
#2169904
Lesenswert?

Meinst Du, mitten in einem Byte aufhören zu senden?

Da sehe ich als einzige Möglichkeit, der UART den GPIO wegzunehmen. Die 
SM wird wohl, einmal angeworfen, bis zum Schluss durchlaufen, ich denke 
nicht, dass man die stoppen kann.


.... Warum willst Du das eigentlich?
(Firma: DC3AX) #2169917
Lesenswert?

Die Frage ist so unvollständig, dass man Dir da wohl kaum helfen kann. 
Warum willst Du stoppen und vor allem, wer soll den Stop verursachen?
Soll es die Software auf dem STM oder eine Bedingung von Außerhalb?
Soll unter allen Umständen sofort gestopt werden, oder nach der 
Übertragung des aktuellen Bytes oder der laufenden Sequenz?
Dann müsste man noch wissen, wie der treober aussieht, den Du für den 
USART verwendest.

Aus der Luft gegriffene Lösungen...
Byte zu ende, dann stop:
- Abbruch-Bedingung in Interruptroutine
- \0 in nächste Position des Puffers
- Puffer-Position auf Puffer-Ende setzen

Sequenz zuende:
- Puffer gegen neue Daten blockieren

Sofortiger Abbruch:
- USART im RCC abschalten
- USART disable setzen

Abbruch von Außen:
- RTS/CTS Handshake verwenden.

Ist aber alles nur geraten, weil man Deine Randbedingungen nicht kennt.
#2170091
Lesenswert?

A. K. schrieb:
> Simon Huwyler schrieb:
>
>> Meinst Du, mitten in einem Byte aufhören zu senden?
>> Da sehe ich als einzige Möglichkeit, der UART den GPIO wegzunehmen.
>
> Takt abschalten tuts garantiert auch, ebenso der selektive
> Peripherie-Reset auf diese UART.

Ich habe eindeutig zuwenig Phantasie! :-)

Takt abstellen, würde aber sicher bedeuten, dass er, sobald der Takt 
wieder läuft, die Arbeit zu ende führt.

Aber eben:

Ulrich P. schrieb:
> Die Frage ist so unvollständig, dass man Dir da wohl kaum helfen kann.

Ist wohl so.

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