Skocz do zawartości

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


Komentator

Pomocna odpowiedź

@vadmae miło słyszeć, że udało się rozwiązać problem 🙂 Jeśli płytka była wewnątrz zestawu Forbota to nie ma fizycznej możliwości, aby była wcześniej przez kogoś używana (chyba, że u producenta). Niestety nie masz zarejestrowanego zestawu, więc nie mogę nic więcej sprawdzić w tej kwestii. Jednak, jeśli coś z płytką jest nie tak to zawsze możesz zgłosić to do sprzedawcy (czyli zapewne do Botlandu).

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

Od fragmentu "Sterowanie linijką LED za pomocą przycisku", przestał mi działać kompletnie jakikolwiek program. Zaspamiło mi errorami, które usunąłem, za pomocą "device configuration tool code generation". Od tego momentu żaden skopiowany fragment się nie chce odpalić, mimo resetu CubeIDE i całego komputera. Podczas debugowania mam 2 opcje: albo "termination of previous launch did not complete successfully", albo przyspiesza mi cały proces i nie mam opcji kliknięcia "resume", po przejściu do trybu debugowania. W ogóle nie podświetla mi "Hal_Init();", tylko "bl SystemInit" lub "b LoopForever". Ktoś ma jakiś pomysł, co mogło się stać?
 

Edytowano przez artures12
Link do komentarza
Share on other sites

Dnia 24.10.2022 o 07:56, Treker napisał:

@artures12 witam na forum 🙂 Dla formalności zapytam: problem dotyczy tylko tego projektu, czy również występuje w nowych projektach, które teraz tworzysz?

Aktualnie jestem na delegacji i sprawdzę dopiero jutro lub pojutrze.
Na pewno, po fakcie, zacząłem testować każdy poprzedni program z kursu. Nic nie chciało się wgrać na płytkę. Czy jest szansa, że się coś spaliło? Bawiłem się też w zmianę czasu opóźnienia i odwrócenie kolejności włączania, wszystko działało (do czasu ostatniego wgrania programu). Rezystory jakich używałem to 1k i 4.7k, bo zabrakło tych pierwszych pod ręką, więc wątpię że prąd był za duży, nawet gdyby wszystkie diody na raz były włączone

Link do komentarza
Share on other sites

Dnia 28.10.2022 o 15:42, Treker napisał:

@artures12 spróbuj w takim razie utworzyć nowy projekt i zobacz co się stanie. Jeśli będą problemy to pokaż co dokładnie się dzieje i będziemy analizować ten temat 🙂

Właśnie to zrobiłem, zanim przeczytałem wiadomość i działa...
Nie wiem co się mogło zepsuć, już myślałem że to wina całej płytki, bo program się wgrywał bez błędów i włączał, ale z pominięciem "Hal_Init()", przez co nie działał. W nowym projekcie już nie pomija mi tego kroku przy włączaniu i nie ma takiego czegoś jak: "bl SystemInit" lub "b LoopForever"

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

No, udało mi się przebrnąć przez pierwszą (nie licząc wstępu i instalacji środowiska) część. Na razie kurs wydaje się świetny, jak zresztą poprzednie, które robiłem. W zadaniu pierwszym przychodzi mi do głowy bramka NOT, ale nie wiem, czy to autor miał na myśli. W drugim zmieniłem podłączenie wprawdzie dwóch diod a nie dziesięciu, ale układ działa tak samo.  

Nie do końca rozumiem tylko ten zapis: 

GPIO_PinState state = (turn_on) ? GPIO_PIN_SET : GPIO_PIN_RESET;

To oznacza to samo co to?:

GPIO_PinState state;
 
	if (turn_on) {
		state = GPIO_PIN_SET;
	} else {
		state = GPIO_PIN_RESET;
	}
Edytowano przez StefanekP
Link do komentarza
Share on other sites

2 godziny temu, StefanekP napisał:

Nie do końca rozumiem tylko ten zapis: 

GPIO_PinState state = (turn_on) ? GPIO_PIN_SET : GPIO_PIN_RESET;

To oznacza to samo co to?:

GPIO_PinState state;
 
	if (turn_on) {
		state = GPIO_PIN_SET;
	} else {
		state = GPIO_PIN_RESET;
	}

Jest dokładnie tak jak napisałeś, oba wyrażenia są równoważne.

https://en.wikipedia.org/wiki/Ternary_conditional_operator

  • Lubię! 2
Link do komentarza
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!

Gość
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.