Bonjour ,
je veut faire une application qui me permet d'envoyer et de recevoir des donn�es USB ( HID ) , si quelqu'un a une solution ou un exemple merci de m'aider .
Merci.
Version imprimable
Bonjour ,
je veut faire une application qui me permet d'envoyer et de recevoir des donn�es USB ( HID ) , si quelqu'un a une solution ou un exemple merci de m'aider .
Merci.
Salut newin
Il te faut donner plus d'explication par connection USB on peut lire/ecrire un support de stockage, convertir un port usb en parallele, un port usb en serie .....
Chaque fois il y a une facon differente de piloter le port usb, certains periferique sont livres avec un driver
Merci pour la r�ponse
en fait , je veut lire et �crire en utilisant l'USB HID .
a+
j'attend toujours la solution :roll:
a+
c'est pas avec ce genre de post, que les gen vont etre motiver pour t'aider
Ta description de ce que tu ve faire est pas assez claire
lire ecrire a laide de l'usb ... ok pe importe ce kon branche sur l'usb on lie et on ecrie , il faut plus de detail sur ce que tu veux faire exactement
sinon jete un oeuil la dessus jai tapper USB HID sur google (l'a tu deja fait ?)
http://www.rennes.supelec.fr/ren/fi/...b/usb-hid.html
Citation:
Comment communiquer avec mon p�riph�rique USB ?
La mani�re de communiquer d�pend du type de tranfert (Bulk, Isochrone, Interrupt, Control).
Le type de transfert plus simple � g�rer est certainement le transfert Bulk.
Il suffit de remplir la structure de donn�es suivante :
struct usbdevfs_bulktransfer {
unsigned int ep;
unsigned int len;
unsigned int timeout; /* in milliseconds */
void *data;
};
et d'appeler la fonction C suivante : ioctl(fd, USBDEVFS_BULK, pointeur sur la structure usbdevfs_bulktransfer);
Exemple de manipulation de ces notions - lecture de donn�es Bulk :
int fd;
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 fd = open("/proc/bus/usb/001/002", O_RDWR); if(fd != -1) { struct usb_bulktransfer bulk; int ret; bulk.ep = USB_DIR_IN | 1; bulk.len = 1024; bulk.timeout = 1000; bulk.data = malloc(1024); ret = ioctl(fd, USBDEVFS_BULK, &bulk); if (ret < 0) printf("Error in bulk transfer"); else { /* les données sont disponibles dans bulk.data */ } close(fd); }
Exemple de manipulation de ces notions - �criture de donn�es bulk :
int fd;
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 fd = open("/proc/bus/usb/001/002", O_RDWR); if(fd != -1) { struct usb_bulktransfer bulk; int ret; bulk.ep = 1; bulk.len = 1024; bulk.timeout = 1000; bulk.data = malloc(1024); ret = ioctl(fd, USBDEVFS_BULK, &bulk); if (ret < 0) printf("Error in bulk transfer"); else { /* les données sont disponibles dans bulk.data */ } close(fd); }
Les transfers de type Interrupt IN sont beaucoup plus difficiles � g�rer. La principale difficult� r�side dans la fait qu'ils ont lieu de mani�re asynchrone. Une fois le transfert initialis�, le programme re�oit des signaux (au sens Unix du terme) qu'il doit intercepter.
d�sol� pour mon dernier poste , j'ai fait ca parce que je suis vraiment besoin de solution .
que es ce que je veut exactement est de faire une communication entre une carte a microcontroleur et un pc.
a+.
Si tu installe une camera USB tu installe bien un driver de meme pour une imprimante un scanner ....
Si tu utlise une carte du commerce elle doit etre livree avec un driver et une notice d'utilisation de ce driver.
j'ai le driver de la carte , il me faut cot� PC
ta pas une librairie ou un .h livr� avec
parce que quand moi je pilote une carte PCI par exemple jai eu une librairie complete et un .h
salut,
c'est moi qui a fait la carte et le programme dedans , mon programme de cot� carte pour l'instant il fait la lecture et l'ecriture sur le port usb , il me reste maintenant la lecture et l'�criture cot� PC .
a bientot
Quel est ton microcontr�leur?
Le fabricant du �C doit te donner la fa�on de communiquer (un driver cot� PC OU si c'est un HID, un fichier .inf OU un exemple qui montre comment communiquer). :)
A+