J'ai écrit un programme simple (basé sur le tutoriel following) qui envoie des données d'une puce AVR (Attiny 2313) à l'ordinateur via un port USB, puisque l'appareil n'a pas de port USB intégré, j'ai utilisé la bibliothèque V-USB pour émuler un tel port via un logiciel.Interfaçage d'un périphérique libUSB alimenté par la bibliothèque V-USB pour AVR
Le périphérique fonctionne comme prévu, et je n'ai eu aucun problème pour l'interfacer avec C en utilisant la bibliothèque libusb, Cependant je veux y accéder avec Java, donc j'ai recherché une implémentation java de libusb.La seule bibliothèque J'ai réussi à mettre en place, et il a réussi à trouver l'usb sur le bus était "libusb-win32 wrapper".
Le seul problème est que le dispositif lève une exception lorsque je tente d'ouvrir
ch.ntb.usb.USBException: No USB endpoints found. Check the device configuration
at ch.ntb.usb.Device.updateMaxPacketSize(Device.java:82)
at ch.ntb.usb.Device.initDevice(Device.java:114)
Comment peut-il être fixé? Y a-t-il une autre façon de le faire? une recommandation?
Voici le code qui lève l'exception
Device dev = USB.getDevice((short) 0x16c0, (short) 0x05dc);
dev.open(1, 0, -1);
ici est des données que je suis sur le dispositif viw USBView
Device Descriptor:
bcdUSB: 0x0110
bDeviceClass: 0xFF
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x08 (8)
idVendor: 0x16C0
idProduct: 0x05DC
bcdDevice: 0x0100
iManufacturer: 0x01
0x0409: "[email protected]"
iProduct: 0x02
iSerialNumber: 0x00
bNumConfigurations: 0x01
ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed: Low
Device Address: 0x03
Open Pipes: 0
Configuration Descriptor:
wTotalLength: 0x0012
bNumInterfaces: 0x01
bConfigurationValue: 0x01
iConfiguration: 0x00
bmAttributes: 0x80 (Bus Powered)
MaxPower: 0x32 (100 Ma)
Interface Descriptor:
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x00
bInterfaceClass: 0x00
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
iInterface: 0x00
related question la réponse, mais je ne pouvais pas comprendre ce qu'il faut changer , et si c'est lié à l'appareil, comment cela peut-il être fait avec un VUSB?
ah désolé, na pas lu votre commentaire sur mon post ... oui, ce fut le même problème pour moi. J'avais besoin d'activer un "vrai" point final, qui peut être trouvé par Java. mais si le point de terminaison existe, vous pouvez simplement utiliser le style controlmsg basé sur l'interruption ... – reox