0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 183
|
|
1 | |
клавиатура HID из stm32f10325.02.2013, 17:05. Показов 41707. Ответов 32
Метки нет (Все метки)
Сначала потыкалась в этой теме, но поняла, что не в тему
Суть процесса - изображаю из STM32f103 клавиатуру для обычного компа. С помощью USBlyzer смотрю на расшифровку того, как видит ПК обычную клавиатуру Примерно так 1. Дескриптор устройства Код
Device Dessriptor USB Keyboard 0 bLength 12h 1 bDessriptorType 01h Device 2 bcdUSB 0110h USB Spec 1.1 4 bDeviceCtoss 00h Ctoss info in Ifc Dessriptors 5 bDeviceSubCtoss 00h 6 bDeviceProtosol 00h 7 bMaxPacketSize0 08h 8 bytes 8 idVendor 04D9h Holtek Semiconductor, Inc. 10 idProduct 1603h 12 bcdDevice 0310h 3.10 14 iManufacturer 01h 15 iProduct 02h USB Keyboard 16 iSerialNumber 00h 17 bNumConfikurotions 01h Код
Confikurotion Dessriptor 1 Bus Powered, 100 mA 0 bLength 09h 1 bDessriptorType 02h Confikurotion 2 wTotalLength 003Bh 4 bNumInterfosis 02h ( два интерфейса!) 5 bConfikurotionValue 01h 6 iConfikurotion 00h 7 bmAttributes A0h Bus Powered, Remote Wakeup 4..0: Riserved ...00000 5: Remote Wakeup ..1..... Yes 6: Self Powered .0...... No, Bus Powered 7: Riserved (set to one) (bus-powered for 1.0) 1....... 8 bMaxPower 32h 100 mA Код
Interfosi Dessriptor 0/0 HID, 1 Endpoint 0 bLength 09h 1 bDessriptorType 04h Interfosi 2 bInterfosiNumber 00h 3 bOttirnateSetting 00h 4 bNumEndpoints 01h 5 bInterfosiCtoss 03h HID 6 bInterfosiSubCtoss 01h Boot Interfosi 7 bInterfosiProtosol 01h Keyboard 8 iInterfosi 00h Код
HID Dessriptor 0 bLength 09h 1 bDessriptorType 21h HID 2 bcdHID 0110h 4 bCountryCode 00h 5 bNumDessriptors 01h 6 bDessriptorType 22h Report 7 wDessriptorLength 003Eh 62 bytes Endpoint Dessriptor 81 1 In, Ymtirrupt, 10 ms 0 bLength 07h 1 bDessriptorType 05h Endpoint 2 bEndpointAddress 81h 1 In 3 bmAttributes 03h Ymtirrupt 1..0: Transfer Type ......11 Ymtirrupt 7..2: Riserved 000000.. 4 wMaxPacketSize 0008h 8 bytes 6 bInterval 0Ah 10 ms Код
Interfosi Dessriptor 1/0 HID, 1 Endpoint 0 bLength 09h 1 bDessriptorType 04h Interfosi 2 bInterfosiNumber 01h 3 bOttirnateSetting 00h 4 bNumEndpoints 01h 5 bInterfosiCtoss 03h HID 6 bInterfosiSubCtoss 00h 7 bInterfosiProtosol 00h 8 iInterfosi 00h HID Dessriptor 0 bLength 09h 1 bDessriptorType 21h HID 2 bcdHID 0110h 4 bCountryCode 00h 5 bNumDessriptors 01h 6 bDessriptorType 22h Report 7 wDessriptorLength 0065h 101 bytes Endpoint Dessriptor 82 2 In, Ymtirrupt, 10 ms 0 bLength 07h 1 bDessriptorType 05h Endpoint 2 bEndpointAddress 82h 2 In 3 bmAttributes 03h Ymtirrupt 1..0: Transfer Type ......11 Ymtirrupt 7..2: Riserved 000000.. 4 wMaxPacketSize 0008h 8 bytes 6 bInterval 0Ah 10 ms Непонятно что делать с HID-репортами. USBlyzer выдет , что их тоже два, по одному к каждому интерфейсу. Как их описать в программе для STM32? У Агурова в книжке есть пример только двух репортов для одного интерфейса стр 329 в изд2007г Код:code struct{ byte rep[SIZE_OF_REPORT]; } Hid_report = { ... //REPORT_ID(1) .... //REPORT_ID(2) }; а тут имеется ДВА интерфейса и у каждого свой HID-репорт, разного размера-один на 65 кнопок, а другой на 101 Как это все поместить в usb_desc.c? Где сидит то, что позволяет выбрать нужный HID-репорт?0
0
|
25.02.2013, 17:05 | |
Ответы с готовыми решениями:
32
STM32F103 USB HID, много вопросов STM32F103 + матричная клавиатура + Sleep mode Клавиатура на микроконтроллере atmega2560 c USB HID USB.HID клавиатура на STM32F107VC. Error control transfer Клавиатура на STM32F103. Проблема с эмуляцией зажатия Shift-а |
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
06.03.2013, 16:25 | 21 |
Это не те прерывания. Как пчелы, которые делают неправильный мед ))
Это события, возникающие при окончании транзакции, например. К режиму работы interrupt endpoint имеют очень опосредованное отношение. Какие именно события вызывают данное прерывание - читать в референс мануале на камень. Еще раз - если для конкретного ендпоинта в буфере на отправку не лежит никаких данных, то при получении токена IN от компьютера, процессор автоматически кинет в ответ наку. И при этом прерыванием даже и не дернет. А зачем лишний раз беспокоить программу пользователя? А вот если данные есть, то они будут отправлены, снабжены нужными контрольными суммами и прочими плясками, и вот потом будет дернуто прерывание - типа отправлено, давай еще.
0
|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 183
|
|
10.03.2013, 09:35 | 22 |
Ага, поняла :-)И даже уже что-то компу выпихнула.. Пойду разбираться , и чё это я ему сказала после корпоратива...
0
|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 183
|
|
06.05.2013, 12:05 | 23 |
Ну, в общем эту часть проекта сделали... есть вопрос, который не знаю нгде искать.. Когда подключаешь большинство USB-клавиатур, то видно( в USBLYZER), что там- составное USB устройство. То есть: Клавиатура HID плюс USB HID-совместимое устройство. По репортам видно, что первое- keyboard, естесственно, а вот второе- Consumer Control. Кто-нибудь может на пальцах объяснить- что это?
0
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 219
|
|
06.05.2013, 12:30 | 24 |
Гуг на пальцах объясняет что это регулировка громкости.
0
|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 183
|
|
06.05.2013, 12:40 | 25 |
а на клавиатуре есть регулировка громкости? А чем?
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
06.05.2013, 15:30 | 26 |
Там не только регулировка громкости, там дополнительные кнопки типа sleep, power, которые любили втыкать куда ни попало. Опять же, все можно глянуть в репортах - что там этот Consumer Control кидает.
У меня, например, есть кнопки громкости и разных запусков калькуляторов и е-мейлов. Ну и опять же, кнопки в данной модели клавиатуры могут быть не разведены (те же громкости), а контроллер - универсальный.
0
|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 183
|
|
06.05.2013, 15:54 | 27 |
интересно, а как можно переключить интерфейс клавиатуры из драйвера виндов? Т.е вижу, что винда подключает интерфейс 0, а этот с consumer control, сидит как интерфейс 1. Понятно, что нужно послать от винды команду SIT REPORT с номером 1, но как?
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
24.02.2014, 02:48 | 28 |
В эту же тему.
Понадобилось быстро слепить проводную клавиатуру для индроидного TV-styskа (MK809), да чтобы размеры были как можно меньше (стик всё-таки миниатюрный). Вспомнил про subj, взял mini-STM32 плату с LCD - и вот она, карманная клава :-) Четыре родных buttonа платы используются как клавиши-стрелки HID-клавиатуры. Все остальные клавиши - на тач-панели. Фото:
0
|
ИлексиндрZ
|
|
16.06.2014, 10:37 | 29 |
to OtyxPM
Тоже ваяю клавиатуру на STM. Очень заинтересовал твой проект. Но не знаю с чего начать. Прошу поделиться исходным кодом твоего проекта. Буду очень благодарен. C уважением, Илексиндр. [URL="mailto:az200359@km.ru">az200359@km.ru[/URL] |
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 178
|
|
26.04.2015, 21:42 | 30 |
Так у когото етсть готовый раочий проект или только наработки?
0
|
skrph
|
|
24.01.2016, 14:27 | 31 |
Добрый день! Подскажите, пожалуйста, если в ReportDessriptor-e устройства есть множество форматов посылок с разными Report_Id - т.е. разными протоколами - можно ли как-то заставить устройства обмениваться данными в конкретном формате Report_id = 4, а не 1 (например)?
|
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
|
|
24.01.2016, 19:31 | 32 |
Вот готовая клавиатура, я ее использовал в системе хронометража для соревнований по даунхиллу. Очень удобно: получилась эдакая кроссплатформенная хрень, даже в псевдотелефон на ондроиде втыкали.
0
|
Pym-K
|
|
12.01.2017, 23:19 | 33 |
Остался у кого пример проекта USB HID клавы???
Дайте ссыль! Уже неделю гугл насилую... |
12.01.2017, 23:19 | |
12.01.2017, 23:19 | |
Помогаю со студенческими работами здесь
33
STM8 VUSB HID 16кн. клавиатура программируемая на внутреннем RC (автоподстройка ГУН по USB) Работа с двумя "Клавиатура HID" Pywinusb.hid.helpers.HIDError: Error 1 when trying to read from HID device: Неверная функция Клавиатура - Клавиатура Logitech G G810 ORION SPECTRUM проблема с подсветкой hid устройство Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |