2017-03-06 4 views
0

J'ai un projet dans lequel j'ai besoin de transférer des données via USB HID. J'ai effectué quelques tests de vitesse, et j'ai trouvé que les pilotes USB ralentissaient péniblement à moins de 1 Ko/s (nulle part près de 64 Ko/s). Est-ce vraiment un problème de pilote ou autre chose? Quelqu'un at-il atteint près de 64 Ko/s sur STM32 HID?Les pilotes USB HID STM32 sont-ils vraiment trop lents?

+0

Montrez-nous du code. Est-ce que vous essayez d'envoyer un octet à la fois? –

+0

@TurboJ J'essaie d'envoyer 64 octets par paquet, ce qui est le maximum. –

+0

Quelles données essayez-vous d'envoyer via USB? Pour autant que je l'ai utilisé, cela fonctionne comme prévu. – tilz0R

Répondre

0

Utilisez-vous le code de CubeMX pour USB HID personnalisé? Si oui, s'il vous plaît trouver le fichier ci-dessous:

intergiciels/ST/STM32_USB_Device_Libarary/Classe/CustomHID/Src/ usbd_customhid.c

vous pouvez voir USBD_CUSTOM_HID_CfgDesc

L'intervalle par défaut est 20 ms pour les deux Tx et Rx.

CUSTOM_HID_EPIN_SIZE, /*wMaxPacketSize: 2 Byte max */ 

    0x00, 

    **0x20, /* bInterval: Polling Interval (20 ms) */** 

    ... 

    CUSTOM_HID_EPOUT_SIZE, /* wMaxPacketSize: 2 Bytes max */ 

    0x00, 

    **0x20, /* bInterval: Polling Interval (20 ms) */** 

vous pouvez le changer à 1ms.