Forum: Mikrocontroller und Digitale Elektronik USB HID Datenübertragung


von dms (Gast)


Lesenswert?

Hallo allerseits,

ich probier momentan eine Datenübertragung per USB hinzubekommen
auf Basis des Atmel USB Frameworks.


Verwendeter Mikroprozessor ist der AT91SAM7S256 (Dev-Board aus dem Shop 
hier).

Das Empfangen von Daten die der Mikrokontroller sendet (µProz -> PC) 
funktioniert, jedoch beim Senden von Daten zum Mikroprozessor tut sich
nichts.

Dabei schlägt auf PC-Seite
"WriteFile(m_devicehandle, (LPVOID)bytes, numbytes, &BytesWritten, 
NULL); "
Mit Fehler 1784 oder 87 (Invalid Parameters) fehl.
Für numbytes hab ich schon alle sinvollen Werte probiert und bin etwas
ratlos wo der Fehler liegen könnte.

Geöffnet wurde das Device mit:
CreateFile(m_pspdidd->DevicePath,
GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, NULL, NULL);


Der Report Descriptor des Mikrocontrollers sieht folgendermaßen aus:

static const unsigned char pReport[] = {
      HID_GLOBAL_USAGE_PAGE+2, 0xFF, 0xFF, // Vendor-defined
      HID_LOCAL_USAGE+1, 0xFF,             // Vendor-defined

      HID_MAIN_COLLECTION+1, HID_COLLECTION_APPLICATION,

      HID_LOCAL_USAGE+1, 0xFF,
      HID_GLOBAL_LOGICAL_MINIMUM+1, (unsigned int)-128,
      HID_GLOBAL_LOGICAL_MAXIMUM+1, (unsigned int) 127,
      HID_GLOBAL_REPORT_COUNT+1, 1,
      HID_GLOBAL_REPORT_SIZE+1, 8,
      HID_MAIN_INPUT+1, 0,

      HID_LOCAL_USAGE+1, 0xFF,            // Vendor-defined usage
      HID_GLOBAL_LOGICAL_MINIMUM+1, (unsigned int)-128,
      HID_GLOBAL_LOGICAL_MAXIMUM+1,  (unsigned int)127,
      HID_GLOBAL_REPORT_COUNT+1, 1,
      HID_GLOBAL_REPORT_SIZE+1, 8,
      HID_MAIN_OUTPUT+1, 0,

      HID_MAIN_ENDCOLLECTION
};



Hatte jemand schon mal ein ähnliches Problem?
Bzw. kann mir irgendjemand sagen ob ich ich im Report Deskriptor was 
verbockt habe?

Gruß
dms

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Für numbytes hab ich schon alle sinvollen Werte probiert und bin etwas
> ratlos wo der Fehler liegen könnte.

Dann wäre es interessant, zu sehen, wie die anderen Parameter von 
WriteFile aussehen. Code?

von dms (Gast)


Lesenswert?

Hat sich erledig, hab den Fehler komischerweise kurz nachdem ich hier 
gepostet habe gefunden.
(War ein wirklich dummer Fehler, habe nämlich vergessen das erste
Feld des Buffers zu nullen und daher hat sich WriteFile beschwert)

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.