mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB: Readfile


Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich möchte gern 6Bytes per USB HID vom Device auslesen per ReadFile(); 
leider hängt sich der Computer dabei auf....
BYTE  buffer[6];
ok = ReadFile(DevHandle, buffer, sizeof(buffer), cnt, NULL);
HidP_GetCaps(PreparsedData, &Capabilities);
Hier wird mir angegeben, dass InputReportByteLength = 6 ist.


Beim Device hab ich ein ByteArray installiert
BYTE InReport[6]; 

USB_WriteEP(0x81, &InReport[0], sizeof(InReport)); 


Mit zwei Bytes hab ich es hinbekommen, aber mit sechs Bytes scheitert 
es. Wenn ich ReadFile() mit 5Bytes oder weniger aufrufe, wird Null 
zurückgegeben.

Gruß
Bernd

Autor: µder Coder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um welchen µC geht es denn dabei?

Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, ganz vergessen; ich setze den STM32F103 ein.

Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist mein Report Deskriptor für den Inputbereich so richtig?

UsagePage (0x00)
Usage (0x01)
Collection(application)
LogicalMin (0x00)
LogicalMax (0xFF)
ReportSize (24)
ReportCount (1)
Usage (1)
Input(Data, Variable, Absolute)


Wenn ich ReportSize(8) verwende, dann funktioniert es reibungslos mit 
einem Byte.

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine funktionierende und kostenlose Software um HID-Geräte unter Windows 
anzusprechen findest Du bei www.rahand.eu. Da ist auch eine 
Beispielapplikation (für Visual Studio C++ Express) dabei, die Dir die 
ankommenden Daten visualisiert. Alles was Du einstellen musst sind die 
VID/PID (ggf. noch das Interface) und die IN/OUT-Buffer-Größen. Schau 
Dir das Beispiel an - ist selbsterklärend. Programmiert mit der Win32 
API.

Damit kannst Du zumindest mal testen, ob Dein Treiber oder Dein 
USB-Gerät fehlerhaft sind.

Gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.