Na płytce STM32 można wgrać system operacyjny Mbed OS.
Wymaga to osobnego kompilatora, ale na szczęście dostępne są narzędzia kompilacji przez stronę mbed.com
Tu jest poradnik autorów systemu Mbed.
W skrócie – przyda się płytka kompatybilna z Mbedos np. Nucleo F103RB. Po podłączeniu przez USB ma wgrany plik MBED.HTM
- Tworzymy konto na stronie mbed.com
- Do konta można przypisać płytkę
- Po zalogowaniu, aktywowaniu mailem konta otwieramy plik MBED.HTM na dysku USB (widocznym po podłączeniu płytki)
- Odpalamy IDE online – np. aby importować pierwszy projekt ze strony klikamy na poradniku żółty przycisk „Importing into MBED IDE”
- Teraz klikamy „Compile” i po wszystkim pobieramy skompilowany plik
- Otwieramy folder z tym plikiem, przeciągamy go na folder USB (ten z plikiem MBED.HTM)
- Teraz następuje flashowanie, plik za chwilę zniknie z folderu
- Po wszystkim można zrobić RESTART (ale często sam rusza program)
Hello world
Przykład ze strony producenta z komentarzem
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include "mbed.h" // Blinking rate - czas mrugania diody1 #define BLINKING_RATE 1500ms int main() { // Led1 pin- ustawiamy na output DigitalOut led(LED1); while (true) { led = !led; //zmiana statusu diody ThisThread::sleep_for(BLINKING_RATE); //zatrzymanie wątku jak w nowoczesnych bibliotekach Thread } } |
UART USB – konsola
W tym przykładzie jest kod wpisywania (znak po znaku) przez konsolę UART (USB w tym przypadku) z prędkością 9600 baud (wymagana w PuTTy).
https://os.mbed.com/docs/mbed-os/v6.0/apis/serial-uart-apis.html
Dyskoteka w systemie 2
Pobawimy się emulatorem systemu na stronie
1. Dodajemy 4 diody do projektu p5,p6,p7,p8 myszką po prawej
2. Wklejamy kod, bit oznacza zapalenie diody:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include "mbed.h" BusOut myleds(LED1, LED2, LED3, LED4, p5, p6 ,p7, p8); int main() { myleds = 1; int diody; while(1) { diody = myleds; diody <<= 1; //i; myleds = diody; wait(0.25); if (myleds == 0b10000000) { myleds = 0b00000001; wait(0.25); } } } |