Добрый день!
Пытаюсь написать программу реализации HID устройства на процессоре STM32F407ZE с использованием CubeMX и сред AC6 Open STM и IARStm(пробовал в двух). Постоянно выскакивает A request for the USB device descriptor failed. Пробовал на двух компьютерах с Windows 7 x64 и Windows 10 x64. Подскажите в чем может быть проблема, пожалуйста.
USB-HID error code 43
- Реклама
Re: USB-HID error code 43
HID дескриптор (массив HID_ReportDesc_FS или CUSTOM_HID_ReportDesc_FS) добавили в код? Вместо него CubeMX ставит заглушку. И размер массива тоже нужно правильно задать.
Re: USB-HID error code 43
Можно подробную инфу на эту тему.Мурик писал(а):HID дескриптор (массив HID_ReportDesc_FS или CUSTOM_HID_ReportDesc_FS) добавили в код? Вместо него CubeMX ставит заглушку. И размер массива тоже нужно правильно задать.
Еще слышал что винда помнит косяки устройства и даже после их исправления блокирует его. Как от этого избавиться?
Re: USB-HID error code 43
Всем привет, если еще у кого возникнет подобная трудность, рассказываю как у меня вышло починить.
[uquote="Мурик",url="/forum/viewtopic.php?p=2984539#p2984539"]HID дескриптор (массив HID_ReportDesc_FS или CUSTOM_HID_ReportDesc_FS) добавили в код? Вместо него CubeMX ставит заглушку. И размер массива тоже нужно правильно задать.[/uquote]
Не совсем, заплатку CubeMX ставит при выборе Custom human interface device. Она находится в файле usbd_custom_hid_if.c , называется CUSTOM_HID_ReportDesc_FS и сюда вписывается дескриптор репорта HID.
Однако в моем случае проблема была в том, что используя Cube, на вкладке Clock configuration при автоподпоре частот Cube поломал настройку. При выборе "another clock sources" в диалоге, когда он подбирает HSE и PLLи для него, он поставил Input frequency 25 МГц, хотя для этой платы актуально значение 8МГц. Далее никакой ошибки не возникает, все генерится и прошивается, только не работает USB (для него получилась частота таким образом в 2 раза большая, чем нужно), хотя и это нигде не всплыло, заметить невозможно. А остальной проект работает, просто на других частотах - тоже не разберешь.
Надеюсь, кому-то помог.
[uquote="Мурик",url="/forum/viewtopic.php?p=2984539#p2984539"]HID дескриптор (массив HID_ReportDesc_FS или CUSTOM_HID_ReportDesc_FS) добавили в код? Вместо него CubeMX ставит заглушку. И размер массива тоже нужно правильно задать.[/uquote]
Не совсем, заплатку CubeMX ставит при выборе Custom human interface device. Она находится в файле usbd_custom_hid_if.c , называется CUSTOM_HID_ReportDesc_FS и сюда вписывается дескриптор репорта HID.
Однако в моем случае проблема была в том, что используя Cube, на вкладке Clock configuration при автоподпоре частот Cube поломал настройку. При выборе "another clock sources" в диалоге, когда он подбирает HSE и PLLи для него, он поставил Input frequency 25 МГц, хотя для этой платы актуально значение 8МГц. Далее никакой ошибки не возникает, все генерится и прошивается, только не работает USB (для него получилась частота таким образом в 2 раза большая, чем нужно), хотя и это нигде не всплыло, заметить невозможно. А остальной проект работает, просто на других частотах - тоже не разберешь.
Надеюсь, кому-то помог.

