Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2019:littlevgl-stm32f429

Toto je starší verze dokumentu!


Grafická knihovna LittlevGL pro 32F429IDISCOVERY


Zadání

Seznamte se s grafickou knihovnou LittlevGL. Portujte knihovnu na vývojový kit 32F429IDISCOVERY s 2.4'' QVGA TFT displejem. Využijte možnosti dotykového ovládání a demonstrujte možné funkce této knihovny.


Grafická knihovna LittlevGL

LittlevGL je volně dostupná grafická knihovna vhodná k vytváření grafických uživatelských rozhraní v embedded aplikacích. Knihovna je psaná v jazyce C a je tedy vodná pro širokou řadu mikrokontrolerů. Velkou výhodou této knihovny je obsáhlá dokumentace a podpora. Na webových stránkách je dostupná řada vzorových řešení, které slouží jako taková malá ukázka co se dá s touto knihovnou vytvořit. Rovněž je součástí webových stránek dokumentace, která obsahuje všechny potřebné informace a to od prvních krůčků po detailní popis všech objektů realizovatelných pomocí této knihovny. Komunita používající tuto knihovnu je poměrně široká, dá se tedy spousta problému řešit na místním fóru. Rovněž jsou ukázky vytváření jednotlivých objektů a vzorová řešení obsažena i v souborech samotné knihovny.

Vzor toho, co se dá pomocí této knihovny zobrazit, je představen na následující animaci.

Jak je z animace patrné, pomocí knihovny se dá vytvořit spoustu objektů. Jednotlivé objekty jsou vytvářeny systémem parent (rodič) a child (dítě). Základním pravidlem je, že každé dítě musí mít jednoho rodiče a rodič může mít více dětí. Samozřejmě dítě se může stát rodičem a mít tak svoje děti. Co to v tomto případě znamená? Vhodné je si to ukázat na výše zobrazené animaci. Prvotní obrazovka je rozdělena na 3 rodiče (Tab1, Tab2, Tab3), kteří mají svoje děti. V případě Tab1 jsou to všechny zobrazené objekty (tlačítka, přepínače, tabulky..). V tomto místě by mohlo být vytvořeno další okno, například po stisknutí nějakého tlačítka ve výběru, ve kterém by mohly být další objekty (děti).

Při vytváření těchto objektů se dá využít stylů. Buď se použijí již vytvořené styly, nebo se dají zkopírovat a upravit. Důležité je, že si může programátor vytvořit styl pro každý objekt, který se v jeho obrazovce objevuje vícekrát a tím pádem nemusí při každém vytváření objektu nastavovat jeho parametry. Příkladem může být obyčejné tlačítko. Pomocí stylu si nastavím barvu, barvu pozadí, barvu pozadí při stisku, popřípadě nějakou animaci a poté už pouze aplikuji daný styl na jednotlivé vytvořené objekty.

Portování knihovny na vývojový kit

V první fázi práce na projektu jsem chtěl použít prostředí EmBitz v kombinaci s STM32CubeMX. Nepodařilo se mi dosáhnout uspokojivého výsledku ani po spoustě pokusů. Vždy jsem narazil na nějakou chybu, kterou jsem neuměl odhalit. Při hledání možných řešení jsem narazil na možnosti použití prostědí STM32 IDE, které je vytvořeno pro STM procesory a je založeno na bázi prostředí Eclipse. Poté se mi podařilo knihovnu na vývojovou desku portovat a to s pomocí návodu dostupného přímo na webových stránkách grafické knihovny. V tomto návodu používá autor stejnou desku STM32F429 (návod). Pro zprovoznění zobrazení a ovládání na dotykovém displeji bylo nutné připsat drivery do zdrojových souborů (tft.c a touchpad.c). Funkci jsem ověřil použitím vzorového řešení, které bylo vhodné pro menší displej (například výše zobrazené vzorové řešení by pro zobrazení na malém displeji nebylo vhodné).

Demonstrace funkcí knihovny

Závěr


Zdroje

Soubory

2019/littlevgl-stm32f429.1579514076.txt.gz · Poslední úprava: 2020/01/20 10:54 autor: Jakub Sedlák