1. Środowisko programistyczne
Uruchomić oprogramowanie STM32IDE.
Skonfigurować nowy i pusty projekt z mikrokontrolerem STM32G431RB.
Warto w czasie konfiguracji projektu w zakładce “Project Manager/Code Generator” zaznaczyć opcję “Generating peripheral initialization as a pair of ‘.c / .h ‘ files per peripheral.”
Skonfigurować wyprowadzenie do którego podłączona jest dioda LED na płytce Nucleo (biała płytka) jako wyjście o nazwie “LED_1”. Napisać program migający dioda LED z częstotliwością 1 Hz. (PB3/PB8)
Wgrać program do mikrokontrolera za pomocą opcji “Run…”
2. Debugger
Skonfigurować interfejs komunikacyjny UART2 do wysyłania danych z prędkością 19200.
Utworzyć program, który wysyła co 1 sekundę na terminal napis “Hello world: 1”, po kolejnej sekundzie “Hello world: 2” itd. Napisy powinny być w osobnych liniach.
Sprawdzić działanie programu na terminalu.
Ponownie załadować program do mikrokontrolera przy zastosowaniu opcji “Debug …”. Ustawić breakpointa na linii programu odpowiadającej za wysyłanie napisu.
Jak działa debuger? Do czego można go wykorzystać?
Zapoznać się z pracą krokową, wejściami\wyjściami w głąb programu itd.
Ustawić breakpoint warunkowy, pułapka zatrzyma program jak i==50.
3.Przycisk
Ustawić wybrany pin jako wejście z PULL-UP i nazwać pin “BUTTON_1”. Podłączyć wybrany pin do przycisku “B_1”.
Ustawić wybrany pin jako wyjście i nazwać “LED_2”. Podłączyć do diody “LED_2”
Utworzyć program, który po wciśnięciu przycisku . Świeci diodą “LED_2”. Jeśli przycisk puszczony to dioda nie świeci.
4. Zadanie
Utworzyć program, który:
- miga diodą “LED_1” z częstotliwością 1Hz. Wybrane wyjście mikrokontrolera podłączyć przewodem z diodą “LED_1” na płytce EduTar-IOT
- wyświetla napis na terminalu “Hello world: 1-n”, “Hello world: 2-n”, itd – co 1 sekundę (każdy napis w nowej linii). “n” to dodatkowa zmienna modyfikowana przez przyciski
- przyciśnięcie przycisku “B_3” powoduje włączenie diody “LED_2” na stałe, przyciśnięcie przycisku “B_4” powoduje wyłączenie diody LED na stałe. Akcja jest natychmiastowa, nie może występować opóźnienie czasowe
- przycisk “B_1” i “B_2” służą do zwiększania i zmniejszania wartości zmiennej n, która jest wyświetlana na terminalu. Przyciski działają bez drgań styków i powtarzalnie. Jedno wciśnięcie to zmiana o 1. Dłuższe przytrzymanie przycisku wciśniętego powoduje zmianę o 5. Dłuższe przytrzymanie to takie, które trwa ponad 1 sekundę.
- wszystkie funkcje działają jednocześnie i niezależnie.
5. Zadanie domowe
jak zmodyfikować program z zadania 4 tak aby była możliwość łatwego ustawienia częstotliwości migania diodą LED (a nawet kilkoma diodami), niezależnie od możliwości ustawienia częstotliwości wysyłania napisu? Jak dodać do tego programu obsługę przycisku bez opóźnienia czasowego?
Dokumentacja techniczna płytki NUCLEO-G431
Terminal: RealTerm