Ich möchte das PC und uC per USB miteinander kommunizieren. Da ich auch nur Win benutze scheint mir die HID Klasse geeignet und ich brauch keine eigenen Treiber. Aber womit programmiert man HID-Kommunikation am sinnvollsten? Schön wäre natürlich auch eine grafische Oberfläche, ist aber kein muss. Habe schon an Delphi gedacht, da braucht man aber wohl auch eine extra JVCL(library). Programmiert habe ich schon etwas u.a mit C/C++, Delphi. Vielleicht hat ja jemand einen Vorschlag, wäre sehr dankbar dafür. MfG Thorben
Hallo Thorben, ist eigentlich ziemlich egal, ob in C, Delphi, Visual Basic, usw. Der Datenaustausch mit der USB-HID-Treiberschnittstelle gestaltet sich ähnlich einfach wie mit einer COM-Schnittstelle. Einfach die veröffentlichten HID-Enumerations-API-Aufrufe in das Programm einbauen und danach geht es mit OpenFile und ReadFile, WriteFile, usw. weiter. Allerdings HID-typisch immer in kleinen Päckchen. Es ist einzig darauf zu achten, dass bei Windows dem HID-Paket noch ein Byte (0x00) voran gestellt wird. Nahezu jeder USB-Chip-Hersteller stellt Demo-Software für Windows und HID-Device bereit.
@Andreas, danke..werd ich mir anschauen @Gast Ich benutze das STK525 von Atmel, es gibt zwar ein Bsp. für HID("HID generic"), aber die PC-Software gibt es nur als .exe mit extra .dll und .h!?.. der Code ist nicht einsehbar. Und in einem pdf dazu sind Init, Find, Read, Write, Close kurz beschrieben! >die veröffentlichten HID-Enumerations-API-Aufrufe in das Programm >einbauen Meinst du damit PID, VID...? MfG Thorben
Hallo Thorben, >>die veröffentlichten HID-Enumerations-API-Aufrufe in das Programm >>einbauen > >Meinst du damit PID, VID...? Ja genau. Oben wurden ein paar Beispiele dazu schon angeführt. Dass auch purebasic mittlerweile USB-API anbietet, wusste ich gar nicht. :-) Nicht auf Atmel alleine fixieren. Was die PC-Software betrifft, passen mehr oder weniger alle Hersteller-Lösungen gleichermaßen. Sei es von ST für die uPSD-CPUs oder von Silabs für die C8051- CPUs. Oder obige Beispiele. Einfach auf die eigene PID/VID und die HID-Paketgröße anpassen. In der Regel wird man den Empfang von Daten des HID-Devices in einem eigenen Thread abwickeln, um die Anwendung nicht zu blockieren. Stolperstein ist meistens das von Windows hinzugefügte Byte vor jedem HID-Paket. Das muss beim Empfang heraus genommen werden und bei Aussendung vorne dran gestellt werden. Ein HID-recordsize von 8 Bytes wird in Windows als ein Record von 1+8 Bytes verarbeitet.
Dann bekomme ich bei Read 9Bytes und muss bei Write noch 1Byte an den Anfang setzen!? Ralf P.S. Danke für die schnelle Hilfe!
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.