Перейти к содержанию
    

Не могу разобраться с usb.

Здравствуйте, хочу разобраться с usb. Для примера решил сделать custom hid устройство. Так вот написал самодельный драйвер на CMSIS. Устройство определяется в системе правильно. Но передача данных не работает. По сообщениям в анализаторе судя по всему драйверу не нравятся string дескрипторы. Почему не знаю. Если сгенерировать код в кубе то же самое. В чем может быть проблема? Если есть рабочий пример на f429zit скиньте пожалуйста.

Спойлер

000000: PnP Event: Device Connected (UP), 2019-10-01 15:43:58,4981010 (1. Device: My device (pid.codes Test PID))
The USB device has just been connected to the system.
000001: Get Descriptor Request (DOWN), 2019-10-01 15:43:58,4981106 +0,0000096 (1. Device: My device (pid.codes Test PID))
Descriptor Type: Device
Descriptor Index: 0x0
Transfer Buffer Size: 0x12 bytes
000002: Control Transfer (UP), 2019-10-01 15:43:58,4982936 +0,0001830. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 12 01 00 02 00 00 00 08 09 12 01 00 00 02 01 02   ................
 03 01                                             ..
Setup Packet
000003: Get Descriptor Request (DOWN), 2019-10-01 15:43:58,4983099 +0,0000163 (1. Device: My device (pid.codes Test PID))
Descriptor Type: Configuration
Descriptor Index: 0x0
Transfer Buffer Size: 0x9 bytes

000004: Control Transfer (UP), 2019-10-01 15:43:58,4985354 +0,0002255. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 09 02 29 00 01 01 00 E0 32                        ..)....а2
Setup Packet

000005: Get Descriptor Request (DOWN), 2019-10-01 15:43:58,4985449 +0,0000095 (1. Device: My device (pid.codes Test PID))
Descriptor Type: Configuration
Descriptor Index: 0x0
Transfer Buffer Size: 0x29 bytes

000006: Control Transfer (UP), 2019-10-01 15:43:58,4987822 +0,0002373. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 09 02 29 00 01 01 00 E0 32 09 04 00 00 02 03 00   ..)....а2.......
 00 00 09 21 11 01 00 01 22 26 00 07 05 81 03 02   ...!...."&...Ѓ..
 00 05 07 05 01 03 02 00 05                        .........
Setup Packet
000007: Select Configuration (DOWN), 2019-10-01 15:43:58,4987994 +0,0000172 (1. Device: My device (pid.codes Test PID))
Configuration Index: 1

000008: Select Configuration (UP), 2019-10-01 15:43:58,4990083 +0,0000010. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Configuration Index: 1
Configuration Handle: 0x10989620
000009: Class-Specific Request (DOWN), 2019-10-01 15:43:58,4990166 +0,0000083 (1. Device: My device (pid.codes Test PID))
Destination: Interface, Index 0
Reserved Bits: 34
Request: 0xa
Value: 0x0
Send 0x0 bytes to the device
000010: Control Transfer (UP), 2019-10-01 15:43:58,4991632 +0,0001466. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
Setup Packet

000011: Get Descriptor Request (DOWN), 2019-10-01 15:43:58,4991865 +0,0000233 (1. Device: My device (pid.codes Test PID))
Descriptor Type: HID Report Descriptor
Descriptor Index: 0x0
Transfer Buffer Size: 0x66 bytes


000012: Control Transfer (UP), 2019-10-01 15:43:58,4994164 +0,0002299. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 05 0C 09 01 A1 01 85 01 09 01 15 00 26 FF 00 75   ....Ў.….....&я.u
 08 95 01 B1 82 85 01 09 01 91 82 85 02 09 02 75   .•.±‚…...‘‚…...u
 08 95 01 81 82 C0                                 .•.Ѓ‚А
Setup Packet
000013: PnP Event: Query ID (UP), 2019-10-01 15:43:58,4998351 +0,0004187 (1. Device: My device (pid.codes Test PID))
Device ID: USB\VID_1209&PID_0001

000014: PnP Event: Query ID (UP), 2019-10-01 15:43:58,4999088 +0,0000737 (1. Device: My device (pid.codes Test PID))
Hardware IDs: USB\VID_1209&PID_0001&REV_0200, USB\VID_1209&PID_0001

000017: Get Descriptor Request (DOWN), 2019-10-01 15:43:58,8163532 +0,3160812 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x20a bytes
LanguageId: 0x409

000018: Control Transfer (UP), 2019-10-01 15:43:58,8165216 +0,0001684. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000019: Get Descriptor Request (DOWN), 2019-10-01 15:43:58,8168660 +0,0003444 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x20a bytes
LanguageId: 0x409

000020: Control Transfer (UP), 2019-10-01 15:43:58,8170165 +0,0001505. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000021: Get Descriptor Request (DOWN), 2019-10-01 15:43:59,8245625 +1,0075460 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x3
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000022: Control Transfer (UP), 2019-10-01 15:43:59,8247647 +0,0002022. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 0C 03 31 00 32 00 33 00 34 00 35 00               ..1.2.3.4.5.
Setup Packet

000023: Get Descriptor Request (DOWN), 2019-10-01 15:43:59,8247822 +0,0000175 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x1
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000024: Control Transfer (UP), 2019-10-01 15:43:59,8250076 +0,0002254. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 0C 03 49 00 74 00 73 00 20 00 49 00               ..I.t.s. .I.
Setup Packet

000025: Get Descriptor Request (DOWN), 2019-10-01 15:43:59,8250670 +0,0000594 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000026: Control Transfer (UP), 2019-10-01 15:43:59,8252570 +0,0001900. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000027: Get Descriptor Request (DOWN), 2019-10-01 15:44:00,3206128 +0,4953558 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x20a bytes
LanguageId: 0x409

000028: Control Transfer (UP), 2019-10-01 15:44:00,3207602 +0,0001474. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000029: Get Descriptor Request (DOWN), 2019-10-01 15:44:00,3210908 +0,0003306 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x20a bytes
LanguageId: 0x409

000030: Control Transfer (UP), 2019-10-01 15:44:00,3212461 +0,0001553. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000031: Get Descriptor Request (DOWN), 2019-10-01 15:44:00,8221648 +0,5009187 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x3
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000032: Control Transfer (UP), 2019-10-01 15:44:00,8223657 +0,0002009. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 0C 03 31 00 32 00 33 00 34 00 35 00               ..1.2.3.4.5.
Setup Packet

000033: Get Descriptor Request (DOWN), 2019-10-01 15:44:00,8223753 +0,0000096 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x1
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000034: Control Transfer (UP), 2019-10-01 15:44:00,8224930 +0,0001177. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 0C 03 49 00 74 00 73 00 20 00 49 00               ..I.t.s. .I.
Setup Packet

000035: Get Descriptor Request (DOWN), 2019-10-01 15:44:00,8225006 +0,0000076 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000036: Control Transfer (UP), 2019-10-01 15:44:00,8226167 +0,0001161. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000037: Get Descriptor Request (DOWN), 2019-10-01 15:44:01,3152936 +0,4926769 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x3
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000038: Control Transfer (UP), 2019-10-01 15:44:01,3154996 +0,0002060. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 0C 03 31 00 32 00 33 00 34 00 35 00               ..1.2.3.4.5.
Setup Packet

000039: Get Descriptor Request (DOWN), 2019-10-01 15:44:01,3155251 +0,0000255 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x1
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000040: Control Transfer (UP), 2019-10-01 15:44:01,3157470 +0,0002219. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 0C 03 49 00 74 00 73 00 20 00 49 00               ..I.t.s. .I.
Setup Packet

000041: Get Descriptor Request (DOWN), 2019-10-01 15:44:01,3157630 +0,0000160 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x402 bytes
LanguageId: 0x409

000042: Control Transfer (UP), 2019-10-01 15:44:01,3159887 +0,0002257. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000043: Get Descriptor Request (DOWN), 2019-10-01 15:44:02,3415104 +1,0255217 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x20a bytes
LanguageId: 0x409

000044: Control Transfer (UP), 2019-10-01 15:44:02,3417323 +0,0002219. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

000045: Get Descriptor Request (DOWN), 2019-10-01 15:44:02,3430005 +0,0012682 (1. Device: My device (pid.codes Test PID))
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x20a bytes
LanguageId: 0x409

000046: Control Transfer (UP), 2019-10-01 15:44:02,3432435 +0,0002430. (1. Device: My device (pid.codes Test PID)) Status: 0x00000000
Pipe Handle: Control Pipe
 14 03 4D 00 79 00 20 00 64 00 65 00 76 00 69 00   ..M.y. .d.e.v.i.
 63 00 65 00                                       c.e.
Setup Packet

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Куб недогенерирует нормальный код, мышь и клаву делает, а custom нет. По крайней мере я не добился от него внятного результата.

Попробуйте почитать вот этот материал, я по нему сделал и работает. Там правда на 103 й контроллер, но я под 042 сделал.
https://habr.com/ru/post/208026/
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...