W zestawie zastosowano w mikrokontroler STM32L053, który jest wyposażony w rdzeń Cortex-M0+, ponadto 64 kB pamięci Flash i 8 kB RAM. Jednostka centralna mikrokontrolera może być taktowania sygnałem zegarowym do 32 MHz, średnia prędkość wykonywania programów wynosi 0,95 DMIPS/MHz. Użyty w zestawie wyświetlacz ma przekątną 2,04” przy rozdzielczości matrycy 172×72 piksele. Jak każdy z zestawów Discovery, także STM32L0538-DISCO ma wbudowany programator-debugger ST-Link/v2-1.
Przygotowanie środowiska ARM-MDK przebiega krok-po-kroku w następujący sposób:
Pobieramy oraz instalujemy środowisko MDK-ARM Keil w wersji 5.15 lub nowszej https://www.keil.com/demo/eval/arm.htm.
Pobieramy oraz instalujemy sterowniki ST-LINK/V2 https://os.mbed.com/teams/ST/wiki/ST-Link-Driver.
Podłączamy mikrokontroler poprzez złącze USB komputera i złącze USB Mini-B mikrokontrolera USB ST-LINK.
Otwieramy środowisko MDK-ARM Keil i otwieramy Pack Installer za pomocą ikony na pasku.
Instalujemy najnowsze biblioteki w Pack Installer poprzez znalezienie w zakładce Packs bibliotek Keil: STM32L0xx_DFP i kliknięcie przycisku Install obok nazwy. Po zakończeniu procesu (wyświetla się tekst Up to date) zamykamy okno Pack Installer. Po instalacji należy zaktualizować lub zainstalować biblioteki ARM::CMSIS w taki sam sposób.
Wybieramy opcję New µVision Project z zakładki Projects.
Zapisujemy nowy projekt w wybranym folderze i wpisujemy nazwę projektu, np. New_project.uvprojx.
Wybieramy z listy mikrokontroler, który powinien się pojawić po zainstalowaniu odpowiednich bibliotek poprzez Pack Installer (STMicroelectronics STM32L0 Series STM32L053 STM32L053C8). Po podświetleniu nazwy klikamy przycisk OK.
Zostanie wyświetlone okno Manage Run-Time Environment. Klikamy przycisk OK i zakończenie tworzenia nowego projektu.
Otwieramy folder w którym został zapisany projekt, powinien zawierać pliki nazwa_projektu.uvprojx i nazwa_projektu.uvoptx oraz dwa foldery – Listings i Objects. Tworzymy dwa nowe foldery i nazywamy je Inc oraz Src.
Pobieramy paczkę bibliotek STM32CubeL0 (https://www.st.com/en/embedded-software/stm32cubel0.html).
Kopiujemy folder Drivers z paczki STM32CubeL0 do folderu z projektem.
Przechodzimy do ekranu głównego środowiska MDK-ARM Keil. Prawym przyciskiem myszy klikamy na Target 1 w oknie Project i wybieramy Manage Project Items.
W oknie Manage Project Items można zmienić domyślną nazwę folderu Source Group 1, Target 1 oraz dodać inne foldery w oknie Groups. Tworzymy kilka grup, np. User, HAL Drivers, CMSIS, BSP, Components oraz dodajemy do odpowiednich folderów wcześniej skopiowanych plików bibliotek za pomocą przycisku Add files.
Kopiujemy pliki z katalogów Inc i Src z paczki STM32CubeL0 z folderu Projects/STM32L053C8-Discovery/Templates z do tak samo nazwanych folderów w katalogu naszego projektu. (main.h, stm32l0xx_hal_conf.h, stm32l0xx_it.h, main.c, stm32l0_hal_msp.c, stm32l0xx_it.c). Pliki z rozszerzeniem .c dołączamy do grupy User. Następnie dołączamy wszystkie pliki z folderu Drivers/STM32L0xx_HAL_Driver/Src do grupy HAL Drivers.
Znajdujemy plik system_stm32l0xx.c w katalogu Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates oraz startup_stm32l053xx.s w katalogu Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/arm i dodajemy te pliki do grupy CMSIS.
Znajdujemy pliki stm32l0538_discovery.c i stm32l0538_discovery_epd.c w katalogu Drivers/BSP/STM32L0538-Discovery i dodajemy ten plik do grupy BSP.
Znajdujemy plik gde021a1.c w katalogu Drivers/BSP/Components/gde021a1 i dodajemy ten plik do grupy Components.
Tworzymy nowy plik klikając na zakładkę File oraz New… i kopiujemy do niego kod,. Zapisujemy utworzony plik pod nazwą bsp.c klikając File oraz Save as… i dodajemy ten plik do grupy User. Zamykamy okno Manage Projects Items za pomocą przycisku OK.
Otwieramy okno konfiguracji projektu przyciskiem Options for Target ‘nazwa’ (domyślnie Target 1) lub wybieramy z zakładki Project polecenie Options for Target.
Dodajemy w zakładce C/C++ w polu Define w ramce Preprocessor Symbols następującą definicję: USE_HAL_DRIVER,STM32L053xx,USE_STM32L0538_DISCO. Za pomocą przycisku po prawej stronie pola Include Paths dodajemy ścieżki do następujących folderów:
.\Inc
.\Drivers\STM32L0xx_HAL_Driver\Inc
.\Drivers\CMSIS\Device\ST\STM32L0xx\Include
.\Drivers\BSP\STM32L0538-Discovery
.\Drivers\BSP\Components\gde021a1
Wybranie w zakładce Debug opcji Use i ST-Link Debugger.
Następnie wejście w ustawienia za pomocą przycisku Settings, wybranie w zakładce Debug portu SW oraz konfiguracja pamięci Flash w zakładce Flash Download na STM32L0 64KB Flash. Zamknięcie okna ustawień debugowania oraz ustawień Target przyciskiem OK.
Kompilacja stworzonego projektu za pomocą opcji Rebuild all target files w zakładce Project lub wciśnięcie odpowiadającego tej opcji przycisku na ekranie głównym.
Jeśli kompilacja przebiegła bezbłędnie, można uruchomić tryb debugowania za pomocą opcji Start/Stop Debugging Session w zakładce Debug oraz wgrać do pamięci mikrokontrolera i uruchomić program za pomocą opcji Run w zakładce Debug lub za pomocą przycisków na ekranie głównym. Jeśli program został uruchomiony poprawnie, dioda kontrolna w zestawie zamiga i zaświeci się na zielono.