Как стать автором
Обновить

Комментарии 9

Интересно увидеть эти искажения в тестировании реального устройства в RMAA.
На панорамном индикаторе эти искажения присутствуют как кратковременный сдвиг спектра, величина сдвига зависит от разницы скоростей входного и выходного потока данных.
Так как у самого стоит задача реализовать составное USB устройство (мышь и Custom HID), то затригерился на название статьи. Однако это самое начало пути… Будем следить за развитием.
А мой проект следующий...
Мышь для людей с ограниченными возможностями. По сути джойстик. Идея не нова, но заводские стоят просто бешанных денег. Отклонением стика управляется курсор, кнопками действия кнопок мыши и прокрутка колеса. Выглядит это следующим образом.
image
Немного информации можно глянуть на сайте: walhi.ru/archives/284.
Обращался к местной соц. поддержке в поиске заинтересованных людей, но никто не отозвался. Прототип используется парнем, но с человеком «где-то там далеко» сложно исправлять недочеты.
В данный момент как раз с композитным девайсом и есть проблема. Он у меня корректно определяется в системе уже, мышиная часть работает, а вот часть Custom HID не обменивается пакетами. Перерыв в разработке уже полгода примерно.
Позвольте выразить Вам своё уважение, коллега!

Посоветую ещё ДО объединения устройств в составное добиться, чтобы они правильно работали каждое само по себе.

Про нюансы объединения двух работоспособных устройств читайте 11.03.2021 четвёртую часть публикации. Особое внимание обратите на доработку usbd_device.c, «неочевидные нюансы» и дескриптор составного устройства в usbd_desc.c.

У Вас всё получится!
Со всеми дескрипторами давно уже разобрался. Иначе корректно отображаться оно не могло в диспетчере. А проблема при чтении custom hid. Ответ не проходит. Почитаю статейку, когда опубликуете. Может чего и забыл сделать. Поштучно то все работает и первая половинка комбинированного тоже.

Я правильно понимаю, что данные из хоста Custom HID получает, и ничего не передаёт в ответ?
Попробуйте прописать в usbd_conf.c настройки буфера USB для конечной точки Custom HID, добавив вызов функции HAL_PCDEx_TxFifo для этой точки. Где это сделать, поиском найдете по файлу. Там уже есть настройки для конечных точек 0 и 1.

Успехов вам в проекте!

Я конечно не знаю нюансов, но вы можете взять arduino pro micro например, QMK и сделать программируемое устройство без проблем. Сам себе клавиатуру собирал на этом — очень легко программировать, прошивать и пользоваться даже человеку без опыта.

Так же пришла идея — как в некоторых ритм играх — сделать кнопку ускорения движения курсора

Напишите как с вами связаться, я бы мог помочь в этой проблеме. Custom hid делал, в т.ч. и довольно сложные.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории