Skocz do zawartości

Kurs STM32L4 – #1 – wstęp, spis treści, dla kogo jest ten kurs


Komentator

Pomocna odpowiedź

Witam,

Fantastyczny kurs, nauczyłem się bardzo wiele. Kurs jest bardzo dobrze napisany i porusza zagadnienia które ciężko znaleźć w innych kursach dostępnych w Internecie. Zastanawiam się czy jest możliwa kontynuacja kursu która dotyczy kolejnych nieco bardziej zaawansowanych lub nowych peryferiów w rodzinie STM32F/STM32H/STM32G takich jak: CORDIC, FMAC, DFSDM, BDMA, MDMA, DMA2D, QuadSPI czy FSMC. 

W Internecie brakuje także dobrych kursów dotyczących debugowania czy szerszego wykorzystania CMSIS DSP. 

 

  • Lubię! 1
Link do komentarza
Share on other sites

@fonak witam na forum! Dziękuję za miłe słowa i docenienie tego kursu. Pozostała nam publikacja jeszcze jednej części (o 1-wire), ale faktycznie kurs powoli się kończy i można zacząć myśleć o jego kontynuacji - będziemy na pewno rozpytywać kursantów w wiadomościach prywatnych (lub publicznie), czy faktycznie są oni zainteresowani taką tematyką. Mamy kilka koncepcji na ewentualną kontynuację kursu, bo zagadnienie to jest tak rozległe, że pomysłów jest mnóstwo. Zobaczymy co da się zrobić, ale jeśli pojawiłaby się kontynuacja kursu to raczej dotyczyłaby dalej rodziny L4 - bo nawet na zestawie do tego kursu można wykonać jeszcze dziesiątki różnych ćwiczeń, które będą omawiały kolejne aspekty pracy z tymi mikrokontrolerami 🙂 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie wiem czy dobrze umieściłem. Jeśli nie proszę o przeniesienie. Kurs jest naprawdę świetny, Kupiłem sobie książkę z kursem bo nie lubię czytać z ekranu. Jestem już w połowie ale wydaje mi się że czegoś brakuje. Bardzo dobrze jest pokazana wstępna konfiguracja STM-a ale nigdzie nie zauważyłem możliwości zmiany ustawień w trakcie wykonywania programu co jest często niezbędna. W PDF-ie opisującym bibliotekę HAL znalazłem funkcje uruchomienia modułu czy jego zatrzymania np. HAL_TIM_Base_Start oraz HAL_TIM_Base_Stop i wiele podobnych ale np. zmiany prescalera już nie. To samo z przerwaniami. Czasem niezbędne jest wyłączenie przerwań albo np. zmiany zbocza. Czy aby to zrobić trzeba się odwoływać do rejestrów. W STM jestem początkujący ale programuję mikrokontrolery od lat, co prawda tylko amatorsko. Być może można to zrobić wywołując ponownie funkcję Init modułu uprzednio ustawiając zmienne np. tim3.Init.prescaler (to udało mi się znaleźć w odniesieniu do peryferiów) ale jeśli chodzi o przerwania już nie. A może ja po prostu czegoś nie wiem. Będę wdzięczny za oświecenie w tej materii. Pozdrawiam wszystkich a szczególnie autorów.  

Edytowano przez Dinosaurus
Link do komentarza
Share on other sites

@Dinosaurus witam na forum 🙂 Miło słyszeć, że kurs Ci się podoba!

Jeśli chodzi o zmianę konfiguracji peryferiów podczas pracy programu to oczywiście jest to możliwe. Za pomocą narzędzia graficznego Cube w łatwy sposób wyklikujemy konfigurację peryferiów. Jak już pewnie zauważyłeś ten konfigurator po prostu generuje zwykły kod, który bazuje na bibliotece HAL do STM32L4. Jeśli chcesz zmienić konfigurację jakiegoś modułu to najprościej również posłużyć się biblioteką HAL i wywołać od nowa inicjalizację danego modułu lub zmienić jakieś jedno ustawienie (dużo zależy od konkretnego przypadku). Skąd wiedzieć co i jak wywołać? Drogi są (przynajmniej dwie):

  1. Droga tradycyjna: jako programista znasz świetnie dokumentację bibliotek HAL, więc po prostu wiesz co należy wywołać (lub przynajmniej wiesz jak to znaleźć w dokumentacji).
  2. Droga łatwiejsza: wyklikujesz  zmiany w działaniu danego peryferium w jakimś dodatkowym projekcie Cube, podglądasz jaki kod został wygenerowany i kopiujesz odpowiedni fragment do swojego projektu.

Dla jednych takie zmiany "w locie" będą konieczne, dla innych nie. Jednak to powyższe to taka skrótowa, ogólna porada, bo dużo może tutaj zależeć od konkretnego przypadku. Oczywiście można odpuścić też HAL i działać bezpośrednio na rejestrach, ale kurs dotyczy HAL, więc uznajmy, że to jest droga, której tutaj się trzymamy. Jeśli masz jakieś konkretne pytanie to najlepiej załóż temat na naszym forum o mikrokontrolerach - łatwiej będzie pomóc.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Witam ! Dziękuję Treker za szybką odpowiedź. Wypróbowałem drugi pomysł - działa. Wzorując się na wpisach jakie zostawił program Cube można też o wiele łatwiej odnaleźć odpowiedni fragment w dokumentacji HAL. W sumie mam to co potrzebne. Jeszcze raz dzięki i pozdrawiam.  

  • Lubię! 1
Link do komentarza
Share on other sites

Witam wszystkich serdecznie. Słuchajcie ludziska, moja płytka ma prawdopodobnie problem z zasilaniem. Tzn. próbowałem podłączać kilka kabli do niej. W jednym przypadku komputer nie widział płytki, choć płytka była zasilona, w drugim nawet mogłem włączyć debugger ale w pojawiała się po chwili w konslii informacja: Target is not responding, retrying... , a dioda LD2 wbudowana w mikrokontroler miała problem z działaniem(w zależności od położenia płytki sygnał się urywał lub pojawiał). W reszcie przypadków podobnie + łatwo się odłączała od komputera płytka. Stąd wniosek, że prawdopodobnie gniazdo jest uszkodzone. Szkoda, bo przerobiłem zaledwie trzy części kursu, a potem zrobiłem sobie ze względu na robotę przerwę i chciałbym teraz wrócić. Moje pytanie brzmi czy mogę w jakiś inny sposób podłączyć płytkę do komputera w celu wgrywania jej programu. Ewentualnie czy mogę gdzieś oddać ją do naprawy(ewentualnie mogę spróbować na własną ręke przylutować gniazdo ale nie wiem czy to nie jest zbyt ryzykowne). Proszę o jakąś radę:) Pozdrawiam serdecznie, robicie świetną robotę:)

Link do komentarza
Share on other sites

@Tymoteus dość dziwny objaw, nie kojarzę takiego uszkodzenia 🙂 Wykluczmy najpierw kwestie programowe. Pamiętasz jaki program ostatnio wgrywałeś na płytkę, co dokładnie miał robić? Jeśli złącze jest uszkodzone to może przy włączonym przewodzenie płytka spadła i coś się uszkodziło? Dziwne, aby działająca płytka nagle przestała działać ze względu na jakieś uszkodzenie sprzętowe.

Link do komentarza
Share on other sites

@Treker Kod jest prościutki, z początku tego kursu. Jego zadaniem jest miganie wbudowanej diody:

  /* USER CODE BEGIN WHILE */
  while (1)
  {
      if(HAL_GPIO_ReadPin(USER_BUTTON_GPIO_Port, USER_BUTTON_Pin) == GPIO_PIN_RESET){
          HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
      } else{
          HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
      }
    /* USER CODE END WHILE */

 

Link do komentarza
Share on other sites

@Tymoteus szansa, na zablokowanie płytki takim kodem jest raczej zerowa. W takim razie pozostaje kwestia uszkodzenia mechanicznego, jeśli wykluczasz uszkodzenie po swojej stronie i uważasz, że złącze było wadliwe to zgłoś sprawę do sprzedawcy (czyli zapewne do Botlandu). Nic tutaj raczej innego nie wymyślimy 🙂 

Link do komentarza
Share on other sites

@Tymoteus można wgrać program przez UART itd., ale dostęp do sprawnego programatora i tak będzie potrzebny (do debugowania). Nie uda Ci się wykonać ćwiczeń z kursu na płytce, w której uszkodzone zostało złącze USB.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.