stm32 usb hid, проблема dev_state - PullRequest
       88

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

0 голосов
/ 02 февраля 2020

Поигрался с USB Custom Hid на открытии STM32f4, сделал уроки по их материалам и прочитал некоторые из usb pdf.

  • Часть дескриптора

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

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

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

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

  • Что я тестировал Итак, в моем коде, когда я запускаю функцию send_report, он проверяет состояние dev и, так как это не 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)
...