Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM32][USB CDC] - Brak połączenia.

21 Paź 2018 20:01 789 13
  • Poziom 3  
    Posiadam płytkę STM32F411VET6. Chciałem stworzyć projekt USB CDC. Jednak po skompilowaniu i rozpoaczęciu debugowania, przy łączeniu się z uC za pomocą programu RealTerm lub PuTTY a pojawia się błąd. Szukałem metod na naprawę tego jednak nic nie działało.
    Raz się łączy, natomiast przy następnej próbie już nie chce tego zrobić.

    [STM32][USB CDC] - Brak połączenia.
  • Poziom 1  
  • Specjalista - Mikrokontrolery
    ... i zwiększ rozmiar stosu.
  • Poziom 1  
  • Poziom 3  
    BlueDraco napisał:
    ... i zwiększ rozmiar stosu.

    Zwiększyłem rozmiar stosu w CubeMX przy generowaniu projektu z 0x400 do 0x800 i nic to nie dało.
  • Poziom 1  
  • Poziom 3  
    stmx napisał:
    Raziel95 napisał:
    Zwiększyłem rozmiar stosu w CubeMX przy generowaniu projektu
    Napisałem Ci chyba, że to tak naprawdę nie jest rozmiar stosu bo na nic realnie nie wpływa. Tak że zwiększanie go ma taki skutek jak umieszczenie komentarza w kodzie.

    Co masz w Device Manager?

    Raziel95 napisał:
    i rozpoaczęciu debugowania


    Ale nie zatrzymujesz programu?


    Nie zatrzymuję. Klikam tą zieloną strzałkę i program działa, a dioda COM na płytce miga.
    Natomiast w Device Menagerze wykrywa mi urządzenie.
    [STM32][USB CDC] - Brak połączenia.
  • Poziom 19  
    Dla takiego F103 callback odbiorczy musi przetworzyć bufor przed oddaniem sterowania. W ten sposób wykluczony jest odbiór danych przez DMA. Nie wiem jak jest w przypadku Twojego procka ale przypuszczam, że nie jest to zrobione lepiej. Mówię o kodzie generowanym przez CubeMX. Tak więc może (?) tu leży problem. Ale nie wiadomo bo zeznajesz jakbyś słowa oszczędzał.
  • Poziom 3  
    Pobrałem terminal TeraTerm i działa bez zarzutu. Moze to wina PuTTY i RealTerm, a nie samego CubeMX i płytki.
    Jednak zobaczę jak będzie działać dalej.

    ex-or napisał:
    Ale nie wiadomo bo zeznajesz jakbyś słowa oszczędzał.

    Nie rozumiem?
  • Poziom 1  
  • Specjalista - Mikrokontrolery
    1. Aktualna wersja CDC z CubeMX na F4 (tylko) ustawia zbyt mały rozmiar stosu. To, gdzie jest stos, zależy od środowiska, np. w Keil CDC na F4 z domyślnym stosem zawiesza się na 100 %.
    2. Teraterm znosi odłączenie urządzenia przy otwartym terminalu i poprawnie reaguje na jego przyłączenie. Każdy inny program terminal w takim przypadku zdycha.
    3. Procedura Transmit MUSI być wołana z przerwania USB lub z innego przerwania o tym samym priorytecie. W przeciwnym przypadku urządzenie kiedyś na pewno zawiśnie.
  • Poziom 1  
  • Specjalista - Mikrokontrolery
    Też zrobiłem ostatnio 2 projekty CDC. Ten z F4 wymagał powiększenia stosu, inaczej się zawieszał.

    Domyślna postać skryptu linkera jest zależna od środowiska. W Keilu stos domyślnie nie ląduje na końcu pamięci.

    Oczywiście masz prawo nie zgadzać się z faktami.
  • Poziom 1