Hi! Ich habe das Beispiel für den virtuellen Com Port von der Seite hier http://www.mikrocontroller.net/articles/STM32_USB-FS-Device_Lib#Aubau_der_Beispielimplmentierung so implementiert, dass ich den Puffer nur sende. Allerdings kommt davon nicht wirklich alles an. Sende ich z.b. abwechselnd 2 Puffer mit 64 Byte ist die Reihenfolge beim Empfänger willkürlich und es gibt auch Überlappungen. Ich vermute mal, dass der µC zu schnell sendet. Allerdings half ein while (count_in != 0) {} nach SetEPTxValid(ENDP1); dabei nicht. Kann mir jemand irgend einen Tipp geben wonach ich hier suchen muss? Ich bin für jede Hilfestellung dankbar! VG Julian
Zeig bitte deinen Code, denn an dem liegt es mit Sicherheit. Edit: Pufferst du das auch richtig? Gruß Oliver
Erstmal danke für deine Antwort. Der Code ist
1 | if (bDeviceState == CONFIGURED) { |
2 | for (i = 0; i < 4096; i++) { |
3 | |
4 | sprintf(SendBuffer,"123456789012345678901234567890123456789012345678901234567890123\n"); |
5 | |
6 | // Write the data to the USB endpoint
|
7 | USB_SIL_Write(EP1_IN, SendBuffer, 64); |
8 | SetEPTxValid(ENDP1); |
9 | while (count_in != 0) {} |
10 | sprintf(SendBuffer,"098654321098654321098654321098654321098654321098654321098765432\n"); |
11 | |
12 | // Write the data to the USB endpoint
|
13 | USB_SIL_Write(EP1_IN, SendBuffer, 64); |
14 | SetEPTxValid(ENDP1); |
15 | while (count_in != 0) {} |
16 | |
17 | }
|
18 | |
19 | SetEPRxValid(ENDP3); |
20 | count_out = 0; |
21 | |
22 | }
|
Die Variablen sind die aus dem Beispiel. Puffern würde ich gerne, aber Doku hab ich bisher leider keine gefunden. Normal müsste es ja auch reichen zu warten, bis die Daten gesendet wurden.
Bevor jemand anderes danach sucht: Man muss count_in selber setzten (scheint beliebig zu sein), da es nur auf 0 gesetzt wird. Im Gegensatz zu count_out wird also nichts automatisch gesetzt, was man normal erwarten könnte. Danach ging also alles bei mir.
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.