stm32 usb hid, проблема с dev_state

Играл с USB Custom Hid при обнаружении STM32f4, делал учебные пособия для своих вещей и читал некоторые из PDF-файлов usb.

  • Дескрипторная часть

Я изменил пользовательский проект hid в соответствии со своим собственным, сделав геймпад с 16 кнопками, поэтому сначала мой дескриптор usb выглядит как это ИЗОБРАЖЕНИЕ ДИСКРИПТОРА USB

Я прошел через несколько вариантов этого, я считаю, что этот тоже должен работать. Причина его изменения заключалась в том, что я видел, как кто-то другой использовал этот тип формата, поэтому я подумал, что может быть проблема (мой старый), введите описание изображения здесь

  • Часть модификации кода Итак, согласно руководству для stm32 usb custom hidhttps://www.youtube.com/watch?v=3JGRt3BFYrM, я выполнил почти все шаги, но не изменил размер конечной точки out в качестве данных i send out составляет всего 2 байта (кнопка 16, логика 0/1), поэтому я не думал, что мне нужно будет его изменить, если я не добавлю больше в дескриптор.

Я также не делал последнюю часть, где они отправляют данные через обратный вызов, вместо этого я отправляю свои данные в основной функции

  • Что я тестировал Итак, в моем коде, как только я запускаю функцию send_report, она проверяет состояние разработчика и, поскольку это не USBD_STATE_CONFIGURED, ничего не делает Функция USBD_CUSTOM_HID_SendReport

-Мой код Я загрузил сюда свой код.https://a.uguu.se/LohDH4IJwbyR_CODE_ALL

ОБНОВИТЬ:

Я запустил функцию USB_llTRANSMIT, чтобы обойти ее и посмотреть, где она может выйти из строя. на линиях

  USBx_INEP(epnum)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_PKTCNT & (((ep->xfer_len + ep->maxpacket - 1U) / ep->maxpacket) << 19));

i get a hard fault (this is in the stm32f4xx_ll_usb.c)

0 ответов

Другие вопросы по тегам