Hallo, ich habe gerade den Artikel STM32 USB-FS-Device Lib gelesen und das Beispiel ausprobiert. Das ganze klappt (nachdem ich die RCC-Initialisierungen wieder eingebaut hatte) soweit, dass sich das Gerät enummeriert und im Gerätemanager (Win7) angezeigt wird. Per HTerm kann ich auch den Port öffnen. Sende ich aber Daten, verschwindet das Gerät aus dem Gerätemanager. Und ich bekomme (natürlich) auch keinen String zurückgeschickt. Hat jemand eine Idee, woran das liegen könnte? Sollten Daten/Code/WhatEver fehlen, reich ich's gerne nach. Aber ich hab eigentlich nur den Code aus dem Artikel benutzt. Viele Grüße Lasse PS: Kennt jemand ein gutes (kostenloses) Programm, mit dem man den USB-Verkehr mitschneiden kann um zu gucken, ob da irgendwelche Fehlermeldungen auftreten, die Windows mir nicht mitteilt?
Okay, Fehlerpräzision geglückt: Er springt in der usb/main Funktion in der Zeile
1 | buffer[bufferPos] = buffer_out[i]; |
In einen Hartfault. Ideen, woran das liegt? Gruß Lasse PS: Das Disconnecten lag an meinem Hardfault-Handler...
Lasse S. schrieb: > Okay, Fehlerpräzision geglückt: > > Er springt in der usb/main Funktion in der Zeile >
1 | buffer[bufferPos] = buffer_out[i]; |
> In einen Hartfault. > > Ideen, woran das liegt? Poste mal deine ganze main, eigentlich funktioniert der ST-Code recht gut. An USB-Tools kann ich USBTrace empfehlen, siehe http://www.sysnucleus.com/ Es gibt eine beschränkte kostenlose Version, die irgendwann abläuft. Man kann sie aber wieder neu installieren.
Hi, der Code ist der gleiche wie im Artikel. Es funktioniert, sobald ich die Variablen innerhalb der main deklariere. Also diese Änderung:
1 | uint8_t buffer[128]; |
2 | uint8_t SendBuffer[128]; |
3 | |
4 | int usb_main(void) |
5 | {
|
1 | int usb_main(void) |
2 | {
|
3 | |
4 | uint8_t buffer[128]; |
5 | uint8_t SendBuffer[128]; |
mache. Anscheinend mag der GCC das nicht, wenn solche Variablen global aber nur innerhalb einer Code-Datei und in keinem Header vorkommen? Ich bin so also glücklich und es funktioniert :) Danke trotzdem :) Gruß Lasse
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.