STM32 Virtual USB: Device weg nach Datensenden

OP Persönliche Seite #1906291
Lesenswert?
• ▲
▼
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?
Persönliche Seite #1906999
Lesenswert?
• ▲
▼
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.
OP Persönliche Seite #1907689
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.