Tutoriel STM32 Nucleo - afficheur LCD
J’ai fait quelques essais avec la carte Nucleo LR152RE gracieusement offerte par ST :
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260002?icmp=nucleo-ipf_pron_pr-nucleo_feb2014
Voici la marche à suivre pour mettre en œuvre un afficheur LCD 16x2 avec la carte ST Nucleo, en utilisant le compilateur en ligne Mbed et la librairie disponible sur Mbed.
Sommaire
Branchement de l’afficheur sur la carte Nucleo
LCD N° | Signification | Branchement | ST Nucleo / Arduino |
---|---|---|---|
1 | GND | 0V | |
2 | VCC | 5V | |
3 | VO | 0V, via 1k | |
4 | RS | D2 | |
5 | RW | 0V | |
6 | E | D3 | |
7 | D0 | 0V | |
8 | D1 | 0V | |
9 | D2 | 0V | |
10 | D3 | 0V | |
11 | D4 | D4 | |
12 | D5 | D5 | |
13 | D6 | D6 | |
14 | D7 | D7 | |
15 | Back Light + | 5V, via 1k | |
16 | Back Light - | 0V |
Câblage de l’afficheur et de la carte Nucleo
Programmation du microcontrôleur
Préparation de l’environnement de développement
Je vais utiliser l’IDE en ligne proposé par Mbed :
https://mbed.org/
Il s’agit tout d’abord de créer un compte
C’est très vite fait, il suffit de cliquer sur signup, de donner son adresse mail, son nom prénom, et de choisir un pseudo et un mot de passe et le tour est joué.
Il faut ensuite brancher la carte pour définir automatiquement la plateforme de développement, il est également possible de le faire manuellement en choisissant la carte dans l’onglet « Platforms ».
Il est recommandé de mettre à jour le Firmware de la carte :
https://mbed.org/teams/st/wiki/ST-Link-Driver
Ceci ne sera réellement utile que lors de la mise en œuvre du debugger ST-LINK.
Importation du programme et de la librairie
Une fois que le compilateur en ligne est ouvert (il faut cliquer sur le bouton « compiler » en haut à droite), on obtient la fenêtre suivante :
600px
On va maintenant importer un programme et une librairie :
Cliquer sur « import »
Choisir le programme TextLCD_HelloWord (au besoin rechercher le programme par Search).
Puis cliquer sur « Import ! » (en rouge sur l’image).
600px
Puis il faut impérativement mettre le compilateur à jour, en sélectionnant mbed (1 en rouge sur l’image ci-dessous) puis en cliquant sur « Update » (2 en rouge sur l’image ci-dessous).
Modification du programme
Modifier le programme main.cpp (programme principal en C++) pour qu’il soit conforme à ceci :
// Test afficheur LCD 16x2
#include "mbed.h"
#include "TextLCD.h" // librairie TextLCD
TextLCD lcd(D2, D3, D4, D5, D6, D7); // rs, e, d4-d7
int main() {
lcd.printf("ST Nucleo L152RE"); // affichage sur la ligne 0
lcd.locate(0,1); // positionnement du curseur en colonne 0 et ligne 1
lcd.printf("Affich. LCD 16x2"); // affichage sur la ligne 1
}
Compilation et transfert du programme dans la carte
Cliquer sur « Compile »
Enregistrer le fichier TextLCD.bin
Puis le transférer dans la carte Nucleo qui apparait comme un lecteur supplémentaire « NUCLEO ».
Il suffit d’appuyer sur le bouton Reste de la carte Nucleo pour lancer le programme.
Remarque : si une erreur de compilation 5 ou 35 apparaît, il faut mettre à jour les différents éléments (programme et librairie) tel que c’est indiqué ci dessus (dans "Modification du programme").