logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Błąd kod 10 dla urządzenia STM32 HID w systemie Windows 10 - pytanie o przyczyny

FourierSTM 14 Lip 2023 01:09 393 5
REKLAMA
  • #1 20653577
    FourierSTM
    Poziom 15  
    Posty: 237
    Pomógł: 11
    Ocena: 31
    Cześć!

    Spotkałem się ostatnio z błędem stm32 HID device w Windows 10 (na Windows 11, Linux wszystko jest ok). Kod generowany przez CubeMX. Code error 10.

    Zna ktoś może przyczynę tego błędu?

    Pozdrawiam

    Edit: Znalazłem. Class/CDC/Inc/usbd_cdc.h , zmienić trzeba max_packet_size z 512 na 64.
  • REKLAMA
  • #2 20653833
    abant
    Poziom 12  
    Posty: 62
    Pomógł: 4
    Ocena: 19
    To masz coś totalnie pokićkane (ty lub cube).
    CDC nie ma nic wspólnego z klasą HID
  • REKLAMA
  • #3 20654196
    FourierSTM
    Poziom 15  
    Posty: 237
    Pomógł: 11
    Ocena: 31
    Późna godzina była ;)
    Ten sam błąd "error code 10" wystąpił przy CDC, rozwiązanie powyżej.
    Ale też przy HID. Rozwiązanie : to samo co wyżej (trzeba zmienić max packet size na 64 Class/HID/src/usbd_hid.c) ale i zwiększyć "heap" na co najmniej 0x200.
  • REKLAMA
  • #4 20656041
    abant
    Poziom 12  
    Posty: 62
    Pomógł: 4
    Ocena: 19
    Dalej coś to dziwne.
    W żadnym z wymienionych plików w repository nie mam definicji max_packet_size

    Natomiast mam w usbd_cdc.h:

    /* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */
    #define CDC_DATA_HS_MAX_PACKET_SIZE 512U /* Endpoint IN & OUT Packet size */
    #define CDC_DATA_FS_MAX_PACKET_SIZE 64U /* Endpoint IN & OUT Packet size */

    Co wydaje się prawidłowe.

    Napisz, jakiego używasz MCU, wersji oprogramowania, czy używasz full czy high speed USB,
    czy komputer faktycznie wykrywa zadeklarowaną prędkość.
    Bo coś mi się wydaje, że łatasz skutki nieprawidłowej konfiguracji, zostawiając przyczynę w spokoju.
    A to prędzej czy później pewnie się i tak ujawni.
  • REKLAMA
  • #5 20656159
    FourierSTM
    Poziom 15  
    Posty: 237
    Pomógł: 11
    Ocena: 31
    Masz rację, korzystałem ze starej wersji biblioteki, najnowsza ma tylko w pliku nagłówkowym .h , ale też wymagała zmiany z 512 na 64.
  • #6 20658258
    FourierSTM
    Poziom 15  
    Posty: 237
    Pomógł: 11
    Ocena: 31

    Ta sama sytuacja na STM32F04. Na Linuxach (kernel 6.4.3), Windows 11, Android, działa. Na 10 nie działa.

    Błąd kod 10 dla urządzenia STM32 HID w systemie Windows 10 - pytanie o przyczyny

    Najnowsze CubeIDE + aktualizacje bibliotek.

    Heap 0x200
    Stack 0x400

    Kod wygenerowany, jeszcze nie zmieniany:
    utworzone 2 pliki hid.h i hid2.h, hid.c korzysta tylko z hid2.h.
REKLAMA