Kurs STM32 #3 wejścia cyfrowe w mikrokontrolerze - GPIO cz. 2.

Sdílet
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

Komentáře • 25

  • @wegi9621
    @wegi9621 Před 4 lety +13

    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.

    • @PiotrDuba
      @PiotrDuba  Před 4 lety

      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

    • @wegi9621
      @wegi9621 Před 4 lety +1

      @@PiotrDuba Nie zaszkodzi dodanie softwareowego debouncingu, tylko źle tłumaczyłeś działanie pętli (w tym konkretnym przypadku).

    • @majonez0
      @majonez0 Před 3 lety +1

      @@wegi9621 Czyli źle uczy, to po co ja to oglądam?

    • @rafagorecki4486
      @rafagorecki4486 Před 3 lety +1

      @@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!

    • @gszmigielski
      @gszmigielski Před 3 lety

      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.

  • @jerzyrys815
    @jerzyrys815 Před rokem +1

    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.

  • @ukaszj2906
    @ukaszj2906 Před rokem +1

    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 :)

  • @marcinszotysek
    @marcinszotysek Před rokem

    Oglądam wszystko, to jest świetne!

  • @adammatrakczy7182
    @adammatrakczy7182 Před 3 lety

    Super Jasno i zrozumiale. Jako początkujący dopiero teraz coś kumam.

  • @user-do6st6yn9j
    @user-do6st6yn9j Před 10 měsíci

    Zgadzam się. To jest ever.

  • @zygmuntgorszczynski2819
    @zygmuntgorszczynski2819 Před rokem +1

    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.

    • @marcinszotysek
      @marcinszotysek Před rokem

      Nie obejrzałeś chyba do końca filmu, przecież minutę później o tym powiedział

  • @Filip-un2hx
    @Filip-un2hx Před 3 lety

    super jedynie to proszę o tłumaczenie tego trochę wolniej i dokładniej. :)

  • @grzegorzvolvotech3390
    @grzegorzvolvotech3390 Před 3 lety

    👍👍👍

  • @jerzyrys815
    @jerzyrys815 Před rokem

    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?

  • @bartass4x
    @bartass4x Před 3 lety

    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.

  • @user-cu2it9kt6n
    @user-cu2it9kt6n Před rokem

    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.

  • @stachubezspodni7682
    @stachubezspodni7682 Před 4 lety

    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!

    • @PiotrDuba
      @PiotrDuba  Před 4 lety +6

      Nie wykonuję projektów szkolnych/uczelnianych - samemu prowadząc zajęcia na uczelni tak trochę średnio robić takie rzeczy uważam xD

  • @waldemarlisiecki8986
    @waldemarlisiecki8986 Před 2 lety

    wstrzymywanie działania programu zapętlając go po to by odczekać jakiś czas to kiepski pomysł, to samo instrukcja DELAY.

    • @marcinszotysek
      @marcinszotysek Před rokem

      Wiadomo, przecież to jest 3 lekcja dopiero XD

  • @jacekwis512
    @jacekwis512 Před 7 měsíci

    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