Hallo alle zusammen :P Ich arbeite mich zur Zeit in 32bit Controller ein. Dabei möchte ich an meinem STM324x9I-Eval Board einen Virtuellen Com Port erstellen. Ich habe mir hierzu über STM32Cube die Initialisierungen schreiben lassen. Das angehängt Manuel habe ich auch bereits überflogen. Mein Programm geht soweit, dass ich einen String senden kann und es mir diesen wieder zurückschickt. Außerdem kann ich über einen Befehl LEDs ein und ausschalten. Allerdings habe ich noch einige Verständnisfragen: -Über die Befehle "USBD_CDC_SetRxBuffer" und "USBD_CDC_SetTxBuffer" kann ich ja die jeweiligen Buffer auswählen. Von der Theorie müsste es doch reichen diese 2 Befehle noch vor der while Schleife einmalig aufzurufen. Allerdings erhalte ich dann gar keine Antwort von der Platine mehr. Warum ist das so? -Gibt es irgendeine Art Empfangs-Interrupt? Oder muss ich selbst jedes mal schauen, ob neue Daten vorhanden sind? So wie mein Programm momentan programmiert ist gehen wenn ich 2 String Pakete während der HAL_Delay sende das erste Paket verloren. -Ich habe nach jedem Sendebefehl eine kleine Wartezeit eingebaut. Ohne diese Wartezeit funktionierte das Senden nicht richtig. Kann ich irgendwie prüfen, wann der erste Senden Befehl fertig ist? -Kann ich irgendwie nach verfolgen ob gerade ein USB Gerät eingesteckt ist?
Inzwischen habe ich mir einige Fragen selbst beantworten können. Über die Funktion "USBD_Interface_fops_FS.Init()" lassen sich User spezifische Unterprogramme initialisieren. Diese wären "CDC_Transmit_FS" und "CDC_Receive_FS" Transmit hat hier bereits eine Erkennung ob das USB beschäftigt ist. Receive wird bereits selbstständig, wenn ein neues Paket kommt aufgerufen. Somit läuft jetzt alles, außer die Erkennung ob am USB etwas angeschlossen ist.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.