Skocz do zawartości

Kurs STM32L4 – #3 – wejścia/wyjścia, czyli GPIO w praktyce


Pomocna odpowiedź

Witam serdecznie

niestety mam problem z wgraniem programu komunikaty sugerują że niby wszystko jest okej "Download verified successfully " i większość rzeczy dzieje się tak jest to opisane w kursie jednak dioda po wciśnięciu f8 nie miga. Breakpoint nie ustawia się w pliku main.c tylko w pliku stm32l4xx_it.c w pierwszej linijce tej funkcji:

void HardFault_Handler(void)
{
  /* USER CODE BEGIN HardFault_IRQn 0 */

  /* USER CODE END HardFault_IRQn 0 */
  while (1)
  {
    /* USER CODE BEGIN W1_HardFault_IRQn 0 */
    /* USER CODE END W1_HardFault_IRQn 0 */
  }
}

podejrzewam że tutaj też powinno to inaczej wyglądać

image.thumb.png.cff0d88f7a4f5ff90b92286ef233ee16.png

 Z góry dziękuję za jakikolwiek sugestie które mogą mi pomóc rozwiązać problem.

 

Link to post
Share on other sites
Dnia 29.05.2021 o 15:04, Frantick napisał:

Czy zakaz zmiany programu ogranicza sie tylko do tych 4 linijek w petli while? czy np. zmiana w enumie GPIO_PinState jest uznawana za zmiane w programie?

@Frantick w tym przypadku chodzi o takie rozwiązanie, które zupełnie nie wymaga żadnych zmian w programie (tylko w sprzęcie) 🙂

@dexu nie masz zarejestrowanego zestawu do tego kursu, więc zapytam dla pewności - czy korzystasz z tej samej płytki, która jest używana w kursie? Który dokładnie program uruchamiasz? Mowa o pierwszym miganiu diodą za pomocą HAL_GPIO_TogglePin oraz HAL_Delay? Czy tworzysz projekt dokładnie tak jak jest to opisane w kursie?

Link to post
Share on other sites
6 godzin temu, Treker napisał:

@dexu nie masz zarejestrowanego zestawu do tego kursu, więc zapytam dla pewności - czy korzystasz z tej samej płytki, która jest używana w kursie? Który dokładnie program uruchamiasz? Mowa o pierwszym miganiu diodą za pomocą HAL_GPIO_TogglePin oraz HAL_Delay? Czy tworzysz projekt dokładnie tak jak jest to opisane w kursie?

 

Faktycznie nie zarejestrowałem zestawu ale zapewniam że jest ten sam. Mimo wszystko problem rozwiązany przeinstalowałem środowisko i już działa. Przy okazji dziękuję za wasze kursy, z kursem arduino napisałem swój pierwszy program, z kursem budowy robotów zbudowałem pierwszego robota a zarchiwizowany już kurs stm32F4 pomógł mi przy pracy inżynierskiej więc jeszcze raz dzięki Panowie.

  • Lubię! 1
Link to post
Share on other sites

Zastanawiałem się nad rozwiązaniem zadania 1, ale jedyne rozwiązanie, które mi przychodzi do głowy, to użycie tranzystora, jako inwertera sygnału.
Jednak w zestawie nie mamy do dyspozycji tranzystorów, więc nie wiem, czy autor miał na myśli takie rozwiązanie xD

Link to post
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

@Ceneusz można to rozwiązać znacznie prościej 🙂 Zastanów się co "dzieje się" na pinie mikrokontrolera, gdy jest tam logiczna jedynka, a co w przypadku zera.

Link to post
Share on other sites

Witam

Kurs zapowiada się bardzo obiecująco ale mam zastrzeżenie, mruganie diodami oparte jest na "delay" a co w przypadku kiedy mikro kontroler powinien w tym czasie wykonywać jakieś obliczenia lub pomiary 500ms razy 10 diod daje 5 sekund zmarnowanego czasu, moim zdaniem powinno być ostrzeżenie o stosowaniu takiego rozwiązania i przynajmniej w zarysie podana alternatywa która w dalszej części powinna zostać rozwinięta

Link to post
Share on other sites

@APJ witam na forum 🙂 

Zachęcam do dalszej lektury kursu i zapoznania się w szczególności z materiałami dotyczącymi przerwań. Kurs pokazuje różne metody i im dalej tym pokazane są bardziej wyrafinowane sposoby.

Link to post
Share on other sites

Nie twierdzę że Delay jest czystym złem a wręcz czasami jest najprostszą i najwygodniejszą drogą np.przy inicjalizacji, ale pamiętam swoje początki z kursów w których nikt nie wspominał że w ten sposób zamulam procesor, dlatego wtrąciłem swoją uwagę o tym że powinno się wspomnieć o takiej przypadłości czyli wadach i zaletach przedstawianych rozwiązań

  • Lubię! 1
Link to post
Share on other sites

@APJ jasne, rozumiemy - mieliśmy to na uwadze podczas tworzenia kursu, dlatego w dalszych częściach (w raz opisywaniem kolejnych zagadnień i peryferiów tego mikrokontrolera) znajdziesz więcej informacji na ten temat. W przypadku tej (początkowej) części kursu po prostu specjalnie nie zajmowaliśmy się szerzej tym zagadnieniem, bo i tak nie moglibyśmy na tym etapie pokazać jeszcze innych rozwiązań. Mam nadzieję, że po lekturze całego kursu temat ten nie będzie już nikomu sprawiał problemów 🙂

  • Lubię! 1
Link to post
Share on other sites

Cześć,
 

Proszę Pana redaktor-a aby dopisał wewnątrz treści akapitu "Podłączenie diody zewnętrznej", przy zdaniu "Dodajemy kolejny pin, który będzie skonfigurowany jako wyjście" słowo : GPIO_Output . Przy PC13 było wejście typu Input, z rozpędu i przy szybkim czytaniu łatwo to pominąć i potem szukać "why ?"

  • Lubię! 1
Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.