Kurs STM32 #3 wejścia cyfrowe w mikrokontrolerze - GPIO cz. 2.
Vložit
- čas přidán 9. 09. 2024
- Subskrybuj mój kanał! ➡️ bit.ly/2JmymNL ⬅️
Już trzeci odcinek kursu programowania mikrokontrolerów STM32! :D W dzisiejszej części dokończymy tematykę cyfrowych GPIO i dowiemy się, czym jest zjawisko drgania styków i jak je niwelować.
Całość kursu bazuje na płytkach deweloperskich z serii Nucleo.
Kolejna część już za tydzień! :D
Kod źródłowy:
github.com/ptr...
Link do pobrania STM32CubeIDE:
www.st.com/en/...
O płytce Nucleo-F303RE:
www.st.com/en/...
#stm32 #programowanie #nucleo
Drgań styków nie ma, ponieważ jest sprzętowy debouncing (C15, R29), tylko pętla jest wykonywana cały czas i losowo się kończy po zwolnieniu buttona.
Tak, tu akurat jest hardware'owy, ale dodanie software'owego nie zaszkodzi ;) Chciałem też zaznaczyć to, bo przy własnych przyciskach nie zawsze stosujemy dodatkowe elementy pasywne. A co do wykonywania nieskończenie pętli i losowej zmiany, to po to jest dodatkowy while w 105 linii - który wykonuje puste instrukcje dopóki przycisk jest wciśnięty
@@PiotrDuba Nie zaszkodzi dodanie softwareowego debouncingu, tylko źle tłumaczyłeś działanie pętli (w tym konkretnym przypadku).
@@wegi9621 Czyli źle uczy, to po co ja to oglądam?
@@majonez0Jakość tych filmów jak i ich treść oceniam naprawdę wysoko, a na yt chyba nie znajdziesz niczego lepszego w języku polskim, więc wielkie dzięki @Piotr Duba!
Moim zdaniem lepszym rozwiązaniem jest po odczekaniu tych 5 ms sprawdzić jeszcze raz jaki stan ma przycisk. Dzięki takiemu rozwiązaniu nie musimy czekać aż przycisk zostanie puszczony.
Uzupełnię opis działania u mnie. Otóż po naciśnięciu przycisku dioda zapala się istan ten trwa nadal po zwolnieniu przycisku P1. Ponowne naciśnięcie wyłacza diodę, azwolnienie przycisku nie zmienia tego stanu tak jak przy zapalaniu diody. Tak więc przycisk stał się bistabilnym. Na płytce Nucleo-F401RE działa to tak, jak opisałem, a nie jak to pokazałeś w tej części kursu Piotrze.
Można też by nie blokować kontrolera przyciskiem, zapisywać jego stan i w if'ie sprawdzać czy się po prostu jego stan zmienił do poprzedniego stanu. Wtedy nie trzeba drugiego while'a :)
Oglądam wszystko, to jest świetne!
Super Jasno i zrozumiale. Jako początkujący dopiero teraz coś kumam.
Zgadzam się. To jest ever.
Problem z przyciskiem to chyba nie drgania styków (to powinien załatwić kondensator przy przycisku). Jeśli wciśniemy przycisk, to stan jest sprawdzany bardzo szybko i zanim go puścimy, toggle wykona się wiele razy - jeśli parzystą ilość, to efektu nie będzie. Trzeba sprawdzić również, czy przycisk został puszczony, jeśli wcześniej sprawdziliśmy, że został naciśnięty.
Nie obejrzałeś chyba do końca filmu, przecież minutę później o tym powiedział
super jedynie to proszę o tłumaczenie tego trochę wolniej i dokładniej. :)
👍👍👍
Moja płytka to Nucleo-F401RE. Przycisk niebieski na tej płytce zachowuje się jak przycisk bistabilny, a nie monostabilny jak na twojej płytce. Oczywiście działa stabilnie zarówno z wykrywaniem stanu zero, jak i z negacją. Nie rozumiem, dlaczego to tak działa, bo fizycznie niebieski przycisk u mnie jest monostabilny. Czy ktoś podpowie, co jest nie tak u mnie i dlaczego układd nie działa tak, żestan niskipowoduje świecenie diody, astan wysoki ją gasi?
Cześć, mam pytanie czy z środowiska STM32CubeIDE można bezpośrednio otworzyć dokumentację z schematem ideowym obwodów (widoczna przykładowo w 1:19)?
Sam znalazłem pewne skróty do dokumentacji w menu "Help" jednak nie ma tam wspomnianych schematów (lub ja ich nie znalazłem), jest przykładowo rozmieszczenie elementów na płytce NUCLEO.
Kurs fajny ale trafiają się drobne błędy, raz prowadzący pokazuje na schemacie rezystor pull up a za chwilę przy konfiguracji twierdzi że go niema. Przycisk zabezpieczony jest przed zjawiskiem drgań styków elementy: C15 i R29, przygaszanie diody nie ma z tym nic wspólnego.
Witam! Czy można prosić o indywidualną pomoc z projektem szkolnym na STM32? Prosiłbym o jakieś namiary na kontakt, na pewno się odezwę. Pozdrawiam!
Nie wykonuję projektów szkolnych/uczelnianych - samemu prowadząc zajęcia na uczelni tak trochę średnio robić takie rzeczy uważam xD
wstrzymywanie działania programu zapętlając go po to by odczekać jakiś czas to kiepski pomysł, to samo instrukcja DELAY.
Wiadomo, przecież to jest 3 lekcja dopiero XD
Jak zrobić by zaprogramować by z częstotliwością 1,22 Mhz na PA1 był sygnał wysoki i niski i tak na przemian Która to lekcja skorzystać mam