Skocz do zawartości

Problem z wybudzeniem mikrokontrolera


stanbb

Pomocna odpowiedź

Cześć, mam problem z przykładem w rozdziale 6 - oszczędzanie energii. Wykonałem dwukrotnie instrukcje krok po kroku, a końcowy efekt jest taki, że dioda mruga raz przy wgraniu programu (lub wciśnięciu przycisku reset na płytce), a potem zero tj. dioda nie mruga. Zasilam płytkę kablem USB. Co mogę sprawdzić ?

Link do komentarza
Share on other sites

@stanbb witam na forum 🙂 Zanim zaczniemy analizować temat dalej to powiedz proszę:

  • Jaka wersja CubeIDE?
  • Czy wcześniej wszystko przebiegało dokładnie tak jak w kursie?

Wyeliminujmy najpierw niespodzianki wynikające ze zmian wprowadzonych w Cube 😉

Link do komentarza
Share on other sites

18 godzin temu, Treker napisał:

wersja : STM32CubeIDE
Version: 1.11.0
Build: 13638_20221122_1308 (UTC)

Poprzednie rozdziały przeszedłem bez problemu zgodnie z opisem. 

Link do komentarza
Share on other sites

@stanbb raczej wszystko powinno w takim razie działać. Wyeksportuj swój cały projekt i dodaj tutaj jako załącznik (spakowane archiwum) - dziś do ~18 będę miał dostęp do płytki to sprawdzę u siebie 🙂

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

@stanbb dziękuję za cierpliwość. Poświęciłem na to sporo czasu, a ostatecznie okazało się, że kolejny raz pojawił się ten sam błąd w generatorze kodu, który był już wcześniej. Dokładny opis problemu i jego rozwiązania znajdziesz tutaj: https://forbot.pl/forum/topic/20044-kurs-stm32l4---6---oszczedzanie-energii-5-lat-na-baterii/page/2/#comment-167699

Błąd ten był już zgłaszany do producenta, został naprawiony, ale znów się pojawił. Tutaj jest oficjalne zgłoszenie: https://community.st.com/s/question/0D53W00001U3x5oSAB/does-not-generate-halrtcexsetwakeuptimerit?t=1673531776852

Za chwilę zgłoszę to jeszcze raz innymi kanałami.

W każdym razie, aby naprawić błąd należy dodać do konfiguracji RTC poniższy wpis:

  if (HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 2047, RTC_WAKEUPCLOCK_RTCCLK_DIV16) != HAL_OK)
  {
    Error_Handler();
  }

Najlepiej między tymi komentarzami:

  /* USER CODE BEGIN RTC_Init 2 */

  /* USER CODE END RTC_Init 2 */

Wtedy wszystko powinno działać.

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

@stanbb ten kod uruchamia przerwanie po przepełnieniu licznika, inaczej mówiąc jest to kod, który powinien zostać wygenerowany po wybraniu poniższych funkcji i aktywacji przerwania - wpisana jest tylko mniejsza wartość (2047), aby było szybciej widać efekty podczas testów. W wyniku błędu w generatorze Cube takie linie nie są poprawnie generowane (pomimo wyklikania opcji w konfiguratorze) i dlatego program nie działał. Gdy błąd zostanie usunięty przez producenta to nie będzie potrzeby, aby samodzielnie dopisywać te linie kodu.

1.png

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.