Forum: Compiler & IDEs STM32 CDC -> Cutecom, Menü bei Verbindung


von pegel (Gast)


Lesenswert?

Hallo,

im Prinzip funktioniert die USB-CDC Verbindung vom STM32 zum PC und 
zurück.

Jetzt hätte ich noch gern, dass beim Verbinden einmalig ein Menü 
erscheint.

Mein Ansatz war zyklisch mit CDC_Transmit_FS Daten zu senden, bis die 
Funktion USBD_OK zurück gibt. Leider wird danach gar nicht mehr 
gesendet.

Weiß jemand den passenden Interrupt der dieses Verhalten ermöglicht?

Also beim ersten Anstecken, oder auch nach dem wieder öffnen der USB 
Schnittstelle durch Cutecom das Menü an Cutecom sendet?

Danke fürs denken ;)

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Das geht nicht. Der PC meldet CDC-ACM Geräten nicht, dass das Terminal 
geöffnet wurde, und das Gerät kann es auch nicht abfragen. 
CDC_Transmit_FS kann auch Erfolg signalisieren obwohl kein Terminal 
offen ist, die Daten gehen dann ins Nirvana. Das hatten wir hier schon 
mal ausführlich diskutiert...

Du musst im Terminal irgendwas senden oder die Flusskontrollleitungen 
setzen. Oder du sendest das Menü immer wieder in Endlosschleife, bis man 
eine Auswahl trifft. Dann noch ein Timeout, um von Untermenüs 
automatisch wieder ins Hauptmenü zurück zu kehren.

Oder du implementierst dein eigenes USB-Protokoll mit einer eigenen 
PC-Anwendung, dann stellen sich solche Probleme nicht...

: Bearbeitet durch User
von pegel (Gast)


Lesenswert?

Das wäre sehr Schade.
Menü in Endlosschleife wollte ich gerade vermeiden.

Ich dachte einer der vielen schönen Interrupts könnte da helfen....

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

pegel schrieb:
> Ich dachte einer der vielen schönen Interrupts könnte da helfen....

Leider nein, wenn der PC nichts entsprechendes sendet kann auch kein 
Interrupt kommen. Beim echten RS-232 merkst du ja auch nicht wenn man 
ein Terminal-Programm öffnet.

von pegel (Gast)


Lesenswert?

Na gut, muß ich wohl anders vorgehen.

Danke!

von Bauform B. (bauformb)


Lesenswert?

Traditionell drückt der Benutzer eine Taste, sobald er mit dem uC reden 
will. Wenn das nicht gerade Shift ist, oder so, kommt ein Zeichen im uC 
an.

Manche Terminalemulatoren können beim Start auch von sich aus etwas 
senden. Früher musste so ein Programm ja das Modem konfigurieren und 
wählen lassen.

von comsettings (Gast)


Lesenswert?

Wenn die Applikation am PC die comsettings ändert beim Starten (z.B. 
baudrate) kannst du darauf einmalig reagieren.

von pegel (Gast)


Lesenswert?

Danke.

In der Tat habe ich mal was mit Parameter Änderung überflogen.
Aber nicht kapiert und verworfen.
Ich glaube das war etwas in der Art.

Habe es jetzt aber anders gelöst.

von foobar (Gast)


Lesenswert?

Für sowas ist die DTR-Leitung (Data Terminal Ready) vorgesehen.  Beim 
Arduino z.B. ist sie mit dem RESET-Pin verbunden.  Bei CDC sollte die 
per set controle line state ausgewertet werden können.

von Dirk (Gast)


Lesenswert?

pegel schrieb:
> Jetzt hätte ich noch gern, dass beim Verbinden einmalig ein Menü
> erscheint.

https://man7.org/linux/man-pages/man7/udev.7.html

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.