Bibliothèques pour l`écran tactile de la carte MCBSTM32C

Transcription

Bibliothèques pour l`écran tactile de la carte MCBSTM32C
Bibliothèques pour l'écran tactile de la carte
MCBSTM32C
1 Bibliothèque pour utiliser l'écran LCD
Pour utiliser l'écran LCD il faut:
− inclure le fichier GLCD.h dans le programme main
− inclure la bibliothèque GLCD_SPI_STM32.lib dans le projet
1.1 Dimensions de l'écran LCD
L'écran a une définition de 320 x 240 (largeur x hauteur).
Deux constantes sont définies contenant ces valeurs : GLCD_WIDTH et GLCD_HEIGHT
1.2 Initialisation de l'écran LCD
Elle se fait par la fonction :
void GLCD_Init ()
1.3 Couleurs
Le codage des couleurs est fait sur 16 bits de la façon suivante :
15 14 13 12 11 10 9 8 7 6 5 4
rouge
vert
3
2 1
bleu
0
La composante rouge est codée sur 5 bits, la verte sur 6 bits et la bleue sur 5 bits. Toutefois la
bibliothèque offre une fonction permettant à partir de 3 composantes entre 0 et 255 d'obtenir
le code correspondant à la couleur la plus proche sur l'écran LCD. Il s'agit de la fonction :
unsigned short GLCD_Color (unsigned short r, unsigned short v, unsigned short b)
−
−
−
−
Le premier paramètre est la composante rouge (0 à 255)
Le deuxième paramètre est la composante verte (0 à 255)
Le dernier paramètre est la composante bleue (0 à 255)
La valeur de retour est le code de couleur correspondant pour l'écran LCD (16 bits)
Quelques couleurs sont prédéfinies :
Nom
rouge vert bleu
Black
Navy
DarkGreen
DarkCyan
Maroon
Purple
Olive
LightGrey
DarkGrey
Blue
Green
0
0
0
0
128
128
128
192
128
0
0
0
0
128
128
0
0
128
192
128
0
255
0
128
0
128
0
128
0
192
128
255
0
Bibliothèques pour les TPs sur microcontrôleur STM32F107VC
M. Dalmau – IUT de Bayonne Pays-Basque
1
Cyan
Red
Magenta
Yellow
White
0
255
255
255
255
255
0
0
255
255
255
0
255
0
255
Le choix de la couleur utilisée pour les tracés (dessins et caractères) est fait par la fonction :
void GLCD_SetForegroundColor (unsigned short color)
− Le paramètre est la couleur de tracé utilisée pour les futurs dessins ou caractères.
Le choix de la couleur utilisée comme fond pour les caractères est fait par la fonction :
void GLCD_SetBackgroundColor (unsigned short color)
− Le paramètre est la couleur utilisée comme fond pour les futurs caractères.
1.4 Effacement de l'écran avec une couleur
L'écran LCD est totalement effacé (rempli par une couleur uniforme) grâce à la fonction :
void GLCD_Clear (unsigned short color)
− Le paramètre est la couleur de fond utilisée pour effacer l'écran.
1.5 Graphisme
Le dessin d'un seul pixel se fait par la fonction :
void GLCD_PutPixel (unsigned int x, unsigned int y)
− Le premier paramètre est la coordonnée en X du pixel (0 à GLCD_WIDTH-1)
− Le deuxième paramètre est la coordonnée en Y du pixel (0 à GLCD_HEIGHT-1)
Le pixel est allumé dans la couleur définie par le dernier appel de GLCD_SetForegroundColor
Le tracé d'une ligne droite se fait par la fonction :
void GLCD_DrawLine (unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2)
− Le premier paramètre est la coordonnée en X du point de départ (0 à GLCD_WIDTH-1)
− Le deuxième paramètre est la coordonnée en Y du point de départ (0 à
GLCD_HEIGHT-1)
− Le troisième paramètre est la coordonnée en X du point d'arrivée (0 à GLCD_WIDTH-1)
− Le dernier paramètre est la coordonnée en Y du point d'arrivée (0 à GLCD_HEIGHT-1)
La droite est tracée dans la couleur définie par le dernier appel de GLCD_SetForegroundColor
Le tracé d'un rectangle se fait par la fonction :
void GLCD_DrawRect (unsigned int x, unsigned int y, unsigned int l, unsigned int h)
− Le premier paramètre est la coordonnée en X du coin supérieur gauche (0 à
GLCD_WIDTH-1)
− Le deuxième paramètre est la coordonnée en Y du coin supérieur gauche (0 à
GLCD_HEIGHT-1)
− Le troisième paramètre est la largeur du rectangle
− Le dernier paramètre est la hauteur du rectangle
Bibliothèques pour les TPs sur microcontrôleur STM32F107VC
M. Dalmau – IUT de Bayonne Pays-Basque
2
Le
rectangle
est
tracé
dans
la
couleur
définie
par
le
dernier
appel
de
GLCD_SetForegroundColor
Le tracé d'un rectangle plein se fait par la fonction :
void GLCD_FillRect (unsigned int x, unsigned int y, unsigned int l, unsigned int h)
− Le premier paramètre est la coordonnée en X du coin supérieur gauche (0 à
GLCD_WIDTH-1)
− Le deuxième paramètre est la coordonnée en Y du coin supérieur gauche (0 à
GLCD_HEIGHT-1)
− Le troisième paramètre est la largeur du rectangle
− Le dernier paramètre est la hauteur du rectangle
Le rectangle est rempli par la couleur définie par le dernier appel de
GLCD_SetForegroundColor
Le tracé d'un ovale est obtenu en définissant le rectangle circonscrit. Il se fait par la fonction :
void GLCD_DrawOval (unsigned int x, unsigned int y, unsigned int l, unsigned int h)
− Le premier paramètre est la coordonnée en X du coin supérieur gauche (0 à
GLCD_WIDTH-1)
− Le deuxième paramètre est la coordonnée en Y du coin supérieur gauche (0 à
GLCD_HEIGHT-1)
− Le troisième paramètre est la largeur du rectangle
− Le dernier paramètre est la hauteur du rectangle
L'ovale est tracé dans la couleur définie par le dernier appel de GLCD_SetForegroundColor
Le tracé d'un ovale plein est obtenu en définissant le rectangle circonscrit. Il se fait par la
fonction :
void GLCD_FillOval (unsigned int x, unsigned int y, unsigned int l, unsigned int h)
− Le premier paramètre est la coordonnée en X du coin supérieur gauche (0 à
GLCD_WIDTH-1)
− Le deuxième paramètre est la coordonnée en Y du coin supérieur gauche (0 à
GLCD_HEIGHT-1)
− Le troisième paramètre est la largeur du rectangle
− Le dernier paramètre est la hauteur du rectangle
L'ovale est rempli par la couleur définie par le dernier appel de GLCD_SetForegroundColor
1.6 Images
Les images sont définies par un tableau de mots de 16 bits. Le premier élément du tableau
contient la largeur de l'image, le deuxième contient sa hauteur, les éléments suivants sont les
codes de couleur des pixels.
On peut obtenir un fichier .h contenant la déclaration d'un tel tableau à partir d'un fichier au
format BMP (couleurs sur 24 bits) en utilisant la commande "genere" fournie.
Cette commande demande le nom du fichier BMP sans suffixe et crée un fichier du même
nom avec le suffixe .h qu'il suffit d'inclure dans le programme qui doit afficher l'image. Le
tableau défini dans ce fichier .h porte le même nom que le fichier lui-même (sans suffixe
évidemment).
Bibliothèques pour les TPs sur microcontrôleur STM32F107VC
M. Dalmau – IUT de Bayonne Pays-Basque
3
L'affichage de l'image se fait alors par la fonction :
void GLCD_DrawImage (unsigned int x, unsigned int y, const unsigned short bitmap[ ])
− Le premier paramètre est la coordonnée en X du coin supérieur gauche de l'image (0 à
GLCD_WIDTH-1)
− Le deuxième paramètre est la coordonnée en Y du coin supérieur gauche de l'image (0
à GLCD_HEIGHT-1)
− Le dernier paramètre est le tableau contenu dans le fichier .h généré
1.7 Affichages
Les affichages en mode textuel se font sur 10 lignes (0 à 9) de 20 colonnes (0 à 19).
Le fichier Font-24x16.h définit des caractères sous forme de tableaux de pixels de 16x24
Il contient les caractères de code ASCII 0x20 (espace) à 0x7E (tilde) tandis que les codes
0x80 à 0x8F définissent des caractères semi-graphiques :
0x80 / 0x81 : cercle (vide/plein)
0x82 / 0x83 : carré (vide/plein)
0x84 / 0x85 : flèche vers le haut (vide/pleine)
0x86 / 0x87 : flèche vers le bas (vide/pleine)
0x88 / 0x89 : flèche vers la gauche (vide/pleine)
0x8A / 0x8B : flèche vers la droite (vide/pleine)
0x8C / 0x8D : homme arrêté (vide/plein)
0x8E / 0x8F : homme qui marche (vide/plein)
L'affichage d'un caractère est obtenu par la fonction :
void GLCD_DrawChar (unsigned int ln, unsigned int col, char c)
− Le premier paramètre est le numéro de la ligne (0 à 9)
− Le deuxième paramètre est le numéro de la colonne (0 à 19)
− Le dernier paramètre est le caractère à afficher
L'affichage d'une chaîne de caractères est obtenu par la fonction :
void GLCD_DrawString (unsigned int ln, unsigned int col, char *s)
− Le premier paramètre est le numéro de la ligne (0 à 9)
− Le deuxième paramètre est le numéro de la colonne (0 à 19)
− Le dernier paramètre est un pointeur sur la chaîne de caractères à afficher
L'affichage d'un entier décimal est obtenu par la fonction :
void GLCD_DrawInt
(unsigned int ln, unsigned int col, int v)
− Le premier paramètre est le numéro de la ligne (0 à 9)
− Le deuxième paramètre est le numéro de la colonne (0 à 19)
− Le dernier paramètre est l'entier à afficher
L'affichage d'un nombre réel est obtenu par la fonction :
void GLCD_DrawFloat (unsigned int ln, unsigned int col, float v)
Bibliothèques pour les TPs sur microcontrôleur STM32F107VC
M. Dalmau – IUT de Bayonne Pays-Basque
4
− Le premier paramètre est le numéro de la ligne (0 à 9)
− Le deuxième paramètre est le numéro de la colonne (0 à 19)
− Le dernier paramètre est le réel à afficher
L'affichage en hexadécimal d'un entier est obtenu par la fonction :
void GLCD_DrawHex (unsigned int ln, unsigned int col, int v)
− Le premier paramètre est le numéro de la ligne (0 à 9)
− Le deuxième paramètre est le numéro de la colonne (0 à 19)
− Le dernier paramètre est l'entier à afficher en hexadécimal
1.8 Boutons utilisables avec l'écran tactile
Les fonctions suivantes permettent de définir des boutons utilisables ensuite avec l'écran
tactile (voir 2). Un bouton est constitué d'un texte placé dans un rectangle. La couleur du texte
et du rectangle sont définies par GLCD_SetForegroundColor celle du fond du bouton par
GLCD_SetBackgroundColor. Un bouton est représenté par une structure de données de type
GLCD_Button.
La création d'un bouton se fait par la fonction :
void GLCD_CreateButton (GLCD_Button *bouton, unsigned int x, unsigned int y, char *texte)
− Le premier paramètre est un pointeur sur une structure de type GLCD_Button
− Le deuxième paramètre est la coordonnée en X du coin supérieur gauche du bouton
− Le troisième paramètre est la coordonnée en Y du coin supérieur gauche du bouton
− Le dernier paramètre est un pointeur sur la chaîne de caractères contenant le texte du
bouton
Cette fonction initialise la structure de données passée en premier paramètre pour définir le
bouton. Cette structure de données pourra alors être utilisée par les fonctions qui suivent.
L'affichage d'un bouton à l'écran se fait par la fonction :
−
void GLCD_DrawButton (GLCD_Button *bouton, unsigned char appuye)
Le premier paramètre est un pointeur sur une structure de type GLCD_Button
par la fonction GLCD_CreateButton
−
Le dernier paramètre indique si le bouton doit être dessiné en position appuyée ou
lâchée. Les valeurs possibles de ce paramètre sont : GLCD_Button_ON ou
initialisée
GLCD_Button_OFF
Lorsque l'on utilise l'écran tactile (voir 2) on récupère les coordonnées d'écran du point
touché. La fonction suivante permet de savoir si un point défini par ses deux coordonnées se
trouve ou non à l'intérieur d'un bouton :
−
int GLCD_InsideButton (GLCD_Button *bouton, unsigned int x, unsigned int y)
Le premier paramètre est un pointeur sur une structure de type GLCD_Button initialisée
par la fonction GLCD_CreateButton.
−
−
−
Le deuxième paramètre est la coordonnée en X du point à tester
Le dernier paramètre est la coordonnée en Y du point à tester
La valeur en retour est 1 si le point est dans le bouton et 0 sinon
Bibliothèques pour les TPs sur microcontrôleur STM32F107VC
M. Dalmau – IUT de Bayonne Pays-Basque
5
2 Bibliothèque pour utiliser l'écran tactile
Pour utiliser l'écran tactile il faut:
− inclure le fichier TS.h dans le programme main
− inclure les bibliothèques TS_MBCSTM32C.lib et I2C_MBCSTM32C.lib dans le
projet
2.1 Initialisation de l'écran tactile
Elle se fait par la fonction :
void TS_Init()
2.2 Utilisation de l'écran tactile
Une structure de donnée de type TS_Coordonnees est utilisée pour contenir les informations
sur le point de contact. Ses champs sont les suivants :
unsigned int x;
unsigned int y;
unsigned int z;
// coordonnée d'écran en x
// coordonnée d'écran en y
// pression du contact
Pour savoir si des coordonnées de touché sont disponibles sur le contrôleur d'écran tactile on
utilise la fonction :
−
−
unsigned int TS_TesterCoordoneesPresentes(TS_Coordonnees *coords)
paramètre est un pointeur sur une structure de type TS_Coordonnees dans
Le
laquelle
seront placées les informations sur le point de contact s'il y a eu contact (valeur de
retour de la fonction = 1)
La valeur se retour est 1 s'il y a eu contact (le paramètre contient les informations sur
le point de contact) et 0 sinon (le paramètre n'a pas été modifié)
Tant qu'il y a contact avec l'écran le contrôleur continue à transmettre les informations sur le
point de contact. Lorsque l'on souhaite les ignorer en attendant qu'il n'y ait plus de contact la
fonction suivante peut être utilisée :
void TS_AttendreFinTouche ()
Bibliothèques pour les TPs sur microcontrôleur STM32F107VC
M. Dalmau – IUT de Bayonne Pays-Basque
6

Documents pareils