LinkedIn YouTube Facebook
Szukaj

Wstecz
Artykuły

Biblioteka do obsługi wyświetlacza graficznego ze sterownikiem SPLC501C przez mikrokontroler STM32

Biblioteka do obsługi wyświetlacza graficznego ze sterownikiem SPLC501C przez mikrokontroler STM32

Prezentowany projekt bazuje na dostępnej o kilku lat bibliotece autorstwa Radosława Kwietnia, a autor niniejszego artykułu rozszerzył ją o funkcje potrzebne do obsługi wyświetlacza przez mikrokontrolery z rodziny STM32. Dodatkowe funkcje te znajdują się w pliku SPLC501C-STM32.c. Połączenie zestawu testowego ZL31ARM z modułem wyświetlacza LCD-AG-132064A-DIW wygląda następująco:

SPLC1001C ZL32ARM
RD > PA0
WR > PA1
A0 > PA2
RES > PA3
CS1 > PA9
D0 > PC8
… >
D7 > PC15

 

 

 

Aby uprościć konfigurację biblioteki poczyniono dwa założenia:

  • linie sterujące (RD, WR itp.) są liniami jednego portu
  • linie danych (D0, D1..D7) są kolejnymi liniami jednego portu, musi to być pierwsze osiem (0..7) lub drugie osiem linii (8..15)

 

//konfiguracja linii sterujacych
#define SPLC_CONTROL_PORT   GPIOA        //wybor portu A
#define SPLC501C_RD    (1 << 0)          //linia RD dolaczona do PA0
#define SPLC501C_WR    (1 << 1)          //linia WR dolaczona do PA1
#define SPLC501C_A0    (1 << 2)          //…
#define SPLC501C_RES   (1 << 3)          //…
#define SPLC501C_CS1   (1 << 9)          //…

//konfiguracja linii danych
#define SPLC_DATA_PORT      GPIOC        //wybor portu C
#define SPLC_DATA_PORT_CR   GPIOC->CRH   //rejestr konfiguracyjny portu danych
#define SPLC501C_D0         8            //numer pierwszej linii danych, w tym przypadku PC8

Biblioteka zawiera zaledwie kilka funkcji, ale powinny one w zupełności wystarczyć do większości zadań:

void GLCD_GoTo(unsigned char x, unsigned char y) – ustawia kursor na ekranie w miejscu o podanych współrzędnych.

void GLCD_WriteString(char * s) – wyświetla ciąg znaków podany jako parametr.

void GLCD_Initialize(void) – inicjalizuje wyświetlacz.

void GLCD_ClearScreen(void) – czyści ekran.

void GLCD_Bitmap(char *b, unsigned char x, unsigned char y, unsigned char w, unsigned char h) – wyświetla na ekranie bitmapę zawartą w tablicy b poczynając od punktu (x, y) o szerokości w i wysokości h. Bitmapę można przetworzyć na tablicę w języku c przy użyciu programu LCDAssistant (do pobrania razem z biblioteką).

Dodatkowo autor rozszerzył możliwości biblioteki o rysowanie podstawowych figur geometrycznych (funkcje zawarte są w pliku graphic.c):

void GLCD_Rectangle(unsigned char x, unsigned char y, unsigned char b, unsigned char a);
void GLCD_Circle(unsigned char cx, unsigned char cy ,unsigned char radius);
void GLCD_Line(int X1, int Y1,int X2,int Y2);