Afficheur LCD 2x16 :
Les 16×2 usage général ou 16×1 caractères LCD sont très faciles à s’interfacer avec n’importe quel microcontrôleur, et ceux-ci ne sont pas vraiment très cher et abondamment disponibles dans le monde entier. Une fois que vous apprendre à interfacer, il sera le périphérique de sortie la plus simple et très fiable utilisée que par vous!
De plus, pour le projet de micro-contrôleur basé, non pas à chaque fois une débogueur peut être utilisé. Tous les affichages LCD utilisent le même, ou l’une quelconque de la CI sur la base de l’architecture introduite par Hitachi.
Ce composant est spécialement fabriqué pour être utilisé avec les microcontrôleurs, ce qui signifie qu’il ne peut être activée par des circuits CI standard. Il est utilisé pour afficher des messages différents sur un écran à cristaux liquides miniature. Le modèle décrit ici est pour son faible prix et de grandes capacités les plus fréquemment utilisés dans la pratique. Il est basé sur le microcontrôleur HD44780 (Hitachi) et peut afficher des messages sur deux lignes de 16 caractères chacune. Il permet d’afficher toutes les lettres de l’alphabet, les lettres grecques, des signes de ponctuation, des symboles mathématiques, etc Il est également possible d’afficher des symboles constitués par l’utilisateur. Autres fonctions utiles comprennent déplacement automatique des messages (gauche et droite), l’apparence du curseur, rétro-éclairage LED, etc
Ce composant est spécialement fabriqué pour être utilisé avec les microcontrôleurs, ce qui signifie qu’il ne peut être activée par des circuits CI standard. Il est utilisé pour afficher des messages différents sur un écran à cristaux liquides miniature. Le modèle décrit ici est pour son faible prix et de grandes capacités les plus fréquemment utilisés dans la pratique. Il est basé sur le microcontrôleur HD44780 (Hitachi) et peut afficher des messages sur deux lignes de 16 caractères chacune. Il permet d’afficher toutes les lettres de l’alphabet, les lettres grecques, des signes de ponctuation, des symboles mathématiques, etc Il est également possible d’afficher des symboles constitués par l’utilisateur. Autres fonctions utiles comprennent déplacement automatique des messages (gauche et droite), l’apparence du curseur, rétro-éclairage LED, etc
Configuration des broches(pin)
LCD Memoire
Affichage à cristaux liquides contient trois blocs de mémoire:
DDRAM Display Data RAM;
CGRAM Générateur de caractères RAM.
CGROM générateur de caractères ROM.
DDRAM Display Data RAM;
CGRAM Générateur de caractères RAM.
CGROM générateur de caractères ROM.
DDRAM Memoire
Mémoire DDRAM est utilisé pour stocker des caractères à afficher. La taille de cette mémoire est capable de stocker 80 caractères. Des emplacements de mémoire sont directement reliés à des caractères sur l’affichage.
Tout fonctionne très simplement: il suffit de configurer l’affichage pour incrémenter automatiquement les adresses (décalage à droite) et définir l’adresse de départ pour le message qui sera affiché (par exemple 00 hex).
Par la suite, tous les caractères envoyés par les lignes D0-D7 sera affiché dans le format de message que nous sommes habitués à de gauche à droite. Dans ce cas, l’affichage commence à partir du premier champ de la première ligne parce que l’adresse initiale est 00 hex. Si plus de 16 caractères sont envoyés, puis chacun d’entre eux sera mémorisé, mais seuls les seize premiers caractères seront visibles. Pour afficher le reste d’entre eux, la commande shift doit être utilisé. Pratiquement, tout se passe comme si l’écran LCD est une fenêtre qui se déplace de gauche à droite sur des emplacements de mémoire contenant des caractères différents. En réalité, c’est la façon dont l’effet de décaler le message sur l’écran a été créé.
Tout fonctionne très simplement: il suffit de configurer l’affichage pour incrémenter automatiquement les adresses (décalage à droite) et définir l’adresse de départ pour le message qui sera affiché (par exemple 00 hex).
Par la suite, tous les caractères envoyés par les lignes D0-D7 sera affiché dans le format de message que nous sommes habitués à de gauche à droite. Dans ce cas, l’affichage commence à partir du premier champ de la première ligne parce que l’adresse initiale est 00 hex. Si plus de 16 caractères sont envoyés, puis chacun d’entre eux sera mémorisé, mais seuls les seize premiers caractères seront visibles. Pour afficher le reste d’entre eux, la commande shift doit être utilisé. Pratiquement, tout se passe comme si l’écran LCD est une fenêtre qui se déplace de gauche à droite sur des emplacements de mémoire contenant des caractères différents. En réalité, c’est la façon dont l’effet de décaler le message sur l’écran a été créé.
Si le curseur est active, il apparaît à l’emplacement alors adressé. En d’autres termes, quand un caractère apparaît à la position du curseur, il se déplace automatiquement vers le prochain emplacement adressé.
Il s’agit d’une sorte de mémoire RAM afin que les données peuvent être écrites et lues de lui, mais son contenu est irrémédiablement perdu lorsque l’alimentation est coupée.
Il s’agit d’une sorte de mémoire RAM afin que les données peuvent être écrites et lues de lui, mais son contenu est irrémédiablement perdu lorsque l’alimentation est coupée.
CGROM Memoire
CGROM mémoire contient une carte de caractère standard avec tous les caractères qui peuvent être affichés sur l’écran. Chaque caractère est affecté à un emplacement mémoire:
Les adresses de mémoire CGROM correspondent aux caractères de l’ASCII. Si le programme en cours d’exécution se heurte à «P caractère d’envoi au port ‘une commande alors la valeur binaire 0101 0000 apparaît sur le port. Cette valeur est l’équivalent ASCII à l’P. caractère Il est ensuite écrit à un écran LCD, ce qui se traduit par l’affichage du symbole de l’emplacement de 0101 0000 CGROM. En d’autres termes, ‘P’ le caractère est affiché. Cela s’applique à toutes les lettres de l’alphabet (majuscules et petites), mais pas à des chiffres. Comme on le voit sur la carte précédente, les adresses de tous les chiffres sont poussés en avant par 48 par rapport à leurs valeurs (chiffres adresse 0 est de 48, chiffre 1 adresse est 49, chiffre 2 adresse est 50, etc.) Par conséquent, afin d’afficher les chiffres correctement, il est nécessaire d’ajouter le nombre décimal 48 à chacun d’entre eux avant d’être envoyé à un écran LCD.
Quel est l’ASCII? Depuis leur création jusqu’à aujourd’hui, les ordinateurs peuvent reconnaître des chiffres, mais pas des lettres. Cela signifie que toutes les données de swaps ordinateur avec un périphérique a un format binaire, même si celle-ci est reconnue par l’homme comme des lettres (le clavier est un excellent exemple). En d’autres termes, chaque caractère correspond à une combinaison unique de zéros et de uns. ASCII est codage de caractères basé sur l’alphabet anglais. Code ASCII spécifie une correspondance entre les symboles de caractères standard et leurs équivalents numériques.
Quel est l’ASCII? Depuis leur création jusqu’à aujourd’hui, les ordinateurs peuvent reconnaître des chiffres, mais pas des lettres. Cela signifie que toutes les données de swaps ordinateur avec un périphérique a un format binaire, même si celle-ci est reconnue par l’homme comme des lettres (le clavier est un excellent exemple). En d’autres termes, chaque caractère correspond à une combinaison unique de zéros et de uns. ASCII est codage de caractères basé sur l’alphabet anglais. Code ASCII spécifie une correspondance entre les symboles de caractères standard et leurs équivalents numériques.
CGRAM Memoire
En dehors de caractères standard, l’écran LCD peut également afficher des symboles définis par l’utilisateur lui-même. Il peut être n’importe quel symbole dans la taille des pixels 5×8. Mémoire RAM appelée CGRAM dans la taille de 64 octets, il permet.
Registres de mémoire sont 8 bits de large, mais seulement 5 bits de poids faible sont utilisés. Une logique (1) dans chaque registre représente un point grisé, alors que 8 emplacements regroupés représenter un caractère. Il est mieux illustré dans la figure ci-dessous:
Registres de mémoire sont 8 bits de large, mais seulement 5 bits de poids faible sont utilisés. Une logique (1) dans chaque registre représente un point grisé, alors que 8 emplacements regroupés représenter un caractère. Il est mieux illustré dans la figure ci-dessous:
Symboles sont généralement définis au debut du programme par des zéros écriture simple et ceux de registres de mémoire CGRAM afin qu’ils forment des formes souhaitées. Pour les afficher, il suffit de spécifier son adresse. Faites attention à la première colonne la carte CGROM de caractères. Il ne contient pas les adresses de mémoire RAM, mais les symboles dont nous discutons ici. Dans cet exemple, on entend par «écran 0 ‘- affichage’ C ‘, signifie’ affichage 1 ‘-’ affichage ‘ž’ etc
Contrôle et commandes d’affichage
Maintenant, l’instruction peut être divisée principalement dans quatre types
1) Les instructions function set
2) adresser des instructions set
3) Les instructions de transfert de données avec la mémoire RAM interne
4) Autres
Détails des instructions
1) Les instructions function set
2) adresser des instructions set
3) Les instructions de transfert de données avec la mémoire RAM interne
4) Autres
Détails des instructions
1) Lire les données de la RAM
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
1
|
1
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
Lire des données binaires 8 bits de DDRAM / CGRAM
La sélection de RAM est réglé par le jeu d’instructions adresse précédente. Si le jeu d’instruction d’adresse de RAM n’est pas exécutée avant l’instruction, les données qui sont lues premier est invalide, parce que la direction de l’AC n’est pas déterminée. Si la RAM de données est lu à plusieurs reprises sans instruction RAM set adresse avant opération de lecture, les données de la RAM correctes à partir de la seconde, mais les premières données serait inexact, car il n’y a pas de temps à transférer les données de la RAM. En cas de DDRAM opération de lecture, l’instruction déplace le curseur joue le même rôle que l’enseignement DDRAM ensemble d’adresses, il transfère également les données RAM à registres de données de sortie.
Après opération de lecture, le compteur d’adresses de données est automatiquement augmentée ou réduite par 1 selon le mode d’entrée. Après CGRAM opération de lecture, décalage d’affichage ne peut pas être exécuté correctement.
* En cas d’opération d’écriture RAM, CA est augmenté ou diminué de 1 tel que celui de l’opération de lecture. En ce moment AC indique la position d’adresse suivant, mais les données antérieures peuvent seulement par l’instruction de lecture.
La sélection de RAM est réglé par le jeu d’instructions adresse précédente. Si le jeu d’instruction d’adresse de RAM n’est pas exécutée avant l’instruction, les données qui sont lues premier est invalide, parce que la direction de l’AC n’est pas déterminée. Si la RAM de données est lu à plusieurs reprises sans instruction RAM set adresse avant opération de lecture, les données de la RAM correctes à partir de la seconde, mais les premières données serait inexact, car il n’y a pas de temps à transférer les données de la RAM. En cas de DDRAM opération de lecture, l’instruction déplace le curseur joue le même rôle que l’enseignement DDRAM ensemble d’adresses, il transfère également les données RAM à registres de données de sortie.
Après opération de lecture, le compteur d’adresses de données est automatiquement augmentée ou réduite par 1 selon le mode d’entrée. Après CGRAM opération de lecture, décalage d’affichage ne peut pas être exécuté correctement.
* En cas d’opération d’écriture RAM, CA est augmenté ou diminué de 1 tel que celui de l’opération de lecture. En ce moment AC indique la position d’adresse suivant, mais les données antérieures peuvent seulement par l’instruction de lecture.
2) Écrire des données dans la RAM
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
1
|
0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
Ecrire des données binaires à 8 bits DDRAM / CGRAM. La sélection des CGRAM ou DRAM est fixé par le jeu d’instructions adresse précédente; jeu d’adresses DDRAM, jeu d’adresse CGRAM. Jeu d’instructions RAM peut aussi déterminer la direction AC à la RAM.
Après opération d’écriture, l’adresse est automatiquement augmenté ou diminué de 1 selon le mode d’entrée.
Après opération d’écriture, l’adresse est automatiquement augmenté ou diminué de 1 selon le mode d’entrée.
3) Lire drapeau d’occupation et adresse
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
1
|
BF
|
AC6
|
AC5
|
AC4
|
AC3
|
AC2
|
AC1
|
AC0
|
En faisant cette lecture de fonctionnement, il est possible de déterminer si l’écran LCD effectue une opération interne ou non. Si l’indicateur d’occupation (BF) est élevée, une opération interne qui se passe à l’intérieur de l’écran LCD à ce moment particulier. Pour effectuer une opération supplémentaire de la source de données (par exemple micro-contrôleur) doit attendre que le BF à l’état bas. Ici, la valeur du compteur d’adresse peut également être lu.
4) Adresse DDRAM Set
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
1
|
AC6
|
AC5
|
AC4
|
AC3
|
AC2
|
AC1
|
AC0
|
Définissez l’adresse DDRAM à la CA, cette instruction rend les données disponibles auprès de DDRAM MPU. En mode d’affichage 1-ligne, les gardes d’adresses DDRAM de “00H” à “4FH”. En mode d’affichage sur 2 lignes, l’adresse DDRAM dans les gammes de première ligne de “00H” à “27H”, et l’adresse DDRAM dans la 2ème ligne est de «40H» à «67H».
5) Régler l’adresse CGRAM
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
1
|
AC5
|
AC4
|
AC3
|
AC2
|
AC1
|
AC0
|
Définissez l’adresse CGRAM à la CA. Cette instruction rend les données disponibles à partir de CGRAM MPU.
6) Function Set
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
1
|
DL
|
N
|
F
|
X
|
X
|
DL: Interface bit de données de contrôle de longueur
DL = ’1 ‘signifie que le mode 8 bits de transfert de données.
DL = ’0 ‘signifie que le mode 4 bits de transfert de données
Lorsque le mode 4 bits est activé, les données doivent être transférées en deux parties, 4bits premier supérieures, puis inférieures 4 bits.
N: nombre de bits ligne de l’écran de contrôle
N = ’1 ‘permet aux caractères à afficher dans 2-lignes
N = ’0 ‘permet de caractères à afficher dans la première ligne seulement
F: bit de commande d’affichage des polices
F = ’0 ‘utiliser le mode 5 x 8 points le format d’affichage
F = ’1 ‘utiliser le mode 5 × 11 points le format d’affichage
DL = ’1 ‘signifie que le mode 8 bits de transfert de données.
DL = ’0 ‘signifie que le mode 4 bits de transfert de données
Lorsque le mode 4 bits est activé, les données doivent être transférées en deux parties, 4bits premier supérieures, puis inférieures 4 bits.
N: nombre de bits ligne de l’écran de contrôle
N = ’1 ‘permet aux caractères à afficher dans 2-lignes
N = ’0 ‘permet de caractères à afficher dans la première ligne seulement
F: bit de commande d’affichage des polices
F = ’0 ‘utiliser le mode 5 x 8 points le format d’affichage
F = ’1 ‘utiliser le mode 5 × 11 points le format d’affichage
7) Maj Curseur ou écran
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
1
|
S/C
|
R/L
|
X
|
X
|
Sans l’écriture ou la lecture des données d’affichage, changer de position curseur gauche / droite ou l’affichage.
Cette instruction est faite pour corriger ou rechercher ou afficher des données. Pendant le mode d’affichage sur 2 lignes, curseur se déplace vers la 2ème ligne après le chiffre des 40 ans de la 1ère ligne.
Lorsque les données affichées est passée à plusieurs reprises, chaque ligne se déplace individuellement.
Lorsque le poste d’affichage est effectuée, le contenu du compteur d’adresse ne sont pas modifiés.
Cette instruction est faite pour corriger ou rechercher ou afficher des données. Pendant le mode d’affichage sur 2 lignes, curseur se déplace vers la 2ème ligne après le chiffre des 40 ans de la 1ère ligne.
Lorsque les données affichées est passée à plusieurs reprises, chaque ligne se déplace individuellement.
Lorsque le poste d’affichage est effectuée, le contenu du compteur d’adresse ne sont pas modifiés.
8) On / Off Controle
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
D
|
C
|
B
|
Cette instruction commande d’affichage, le curseur et clignotement du curseur.
D: Affichage activé / désactivé bit de commande
D = ’1 ‘signifie l’affichage complet est activé
D = ’0 ‘signifie l’affichage est complètement fermé. Mais les données d’affichage reste en DDRAM.
C: le curseur Marche / Arrêt bit de commande
C = ’1 ‘spires sur le curseur
C = ’0 ‘désactive le curseur. Mais I / D registre conserve les données
B: clignotement du curseur Marche / Arrêt bit de commande
B = ’1 ‘permet de clignotement du curseur périodiquement.
B = ’0 ‘arrête le curseur clignote et le curseur semble stable si le curseur est activé.
D: Affichage activé / désactivé bit de commande
D = ’1 ‘signifie l’affichage complet est activé
D = ’0 ‘signifie l’affichage est complètement fermé. Mais les données d’affichage reste en DDRAM.
C: le curseur Marche / Arrêt bit de commande
C = ’1 ‘spires sur le curseur
C = ’0 ‘désactive le curseur. Mais I / D registre conserve les données
B: clignotement du curseur Marche / Arrêt bit de commande
B = ’1 ‘permet de clignotement du curseur périodiquement.
B = ’0 ‘arrête le curseur clignote et le curseur semble stable si le curseur est activé.
9) Réglage du mode d’entrée(Entry set)
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
I/D
|
SH
|
Cette instruction définit la direction de déplacement du curseur et l’affichage.
Lorsque les E / D = ’1 ‘curseur se déplace vers la droite et adresse DDRAM est augmenté de 1.
Lorsque E / D = ’0 ‘curseur se déplace vers la gauche et adresse DDRAM est diminué de 1.
CGRAM fonctionne de la même manière dans ce contexte.
Lorsque les E / D = ’1 ‘curseur se déplace vers la droite et adresse DDRAM est augmenté de 1.
Lorsque E / D = ’0 ‘curseur se déplace vers la gauche et adresse DDRAM est diminué de 1.
CGRAM fonctionne de la même manière dans ce contexte.
10) Retour Accueil
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
X
|
Cette instruction définit l’adresse à l’encontre de ’00h ‘, et renvoie le curseur sur la première colonne de la première ligne. Et si l’affichage est décalé précédemment, cette instruction se déplace aussi. Le contenu DDRAM ne changent pas dans cette instruction.
11) Effacer Tous
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
Effacer toutes les données d’affichage en écrivant “20H” (code ASCII du caractère «espace») à toutes les adresses DDRAM, ET consigne adresse DDRAM compteur (AC) pour “00H”. Il renvoie le curseur à la première colonne de la première ligne et établit le mode d’entrée pour incrémenter le mode (I / D = ’1 ‘).
Interface 8-bits et 4 bits de LCD
Maintenant, la question est de savoir comment afficher des données dans l’écran LCD ou donner l’ordre à celui-ci. Il ya deux modes de transfert de données sont pris en charge par les écrans LCD. Le premier est le mode 4 bits, un autre est en mode 8 bits. Pour transférer des données en mode 8 bits, commencez par mettre vos données dans le bus 8 bits, puis mettre la commande dans le bus de commande, puis les impulsions du signal de validation.
Pour envoyer des données en mode 4 bits, d’abord mis 4bit supérieures dans le bit de données 4 bus connecté à 4MSB broches écran LCD, puis mettez signaux de commande dans le bus de commande, puis pulser la broche E une fois. Prochaine mise bas le bit 4 dans le bus de données et d’impulsion de l’axe E de nouveau. Voici un organigramme décrivant simplement.
Pour envoyer des données en mode 4 bits, d’abord mis 4bit supérieures dans le bit de données 4 bus connecté à 4MSB broches écran LCD, puis mettez signaux de commande dans le bus de commande, puis pulser la broche E une fois. Prochaine mise bas le bit 4 dans le bus de données et d’impulsion de l’axe E de nouveau. Voici un organigramme décrivant simplement.
LCD Connection
Selon le nombre de lignes sont utilisées pour la connexion d’un écran LCD pour le microcontrôleur, il ya des modes LCD 8-bits et 4 bits. Le mode approprié est sélectionné au début de l’opération dans le processus appelé «initialisation». Le mode 8-bit LCD utilise sorties D0-D7 pour transférer des données comme il est expliqué à la page précédente.
L’objectif principal du mode 4-bit LCD est de sauver précieux broches E / S du microcontrôleur. Seuls les 4 bits supérieurs (D4-D7) sont utilisés pour la communication, tandis que d’autres peuvent être laissées libres. Chaque élément de données est envoyé à l’écran en deux étapes-quatre bits supérieurs sont transmis en premier (normalement à travers les lignes D4-D7), puis quatre bits de poids faible. Initialisation de l’écran LCD permet de relier et interpréter les bits reçus correctement.
L’objectif principal du mode 4-bit LCD est de sauver précieux broches E / S du microcontrôleur. Seuls les 4 bits supérieurs (D4-D7) sont utilisés pour la communication, tandis que d’autres peuvent être laissées libres. Chaque élément de données est envoyé à l’écran en deux étapes-quatre bits supérieurs sont transmis en premier (normalement à travers les lignes D4-D7), puis quatre bits de poids faible. Initialisation de l’écran LCD permet de relier et interpréter les bits reçus correctement.
Les données sont rarement lues à partir de l’écran LCD (il est principalement transférée du microcontrôleur à l’écran) et il est souvent possible d’économiser un supplément de broche E / S par simple reliant la broche R / W à la terre. Une telle économie a son prix. Les messages seront normalement affiché, mais il ne sera pas possible de lire le drapeau occupé car il n’est pas possible de lire l’affichage soit. Heureusement, il existe une solution simple. Après l’envoi d’un caractère ou d’une commande, il est important de donner à l’écran LCD assez de temps pour faire son travail. Compte tenu du fait que l’exécution d’une commande peut durer environ 1.64mS, il suffira d’attendre environ 2 ms pour les LCD.
STM32_LCD Code Example
STM32_LCD Code Example
je travaille sur une carte stm32f100 et un afficheur lcd jhd162a 16*2.
RépondreSupprimerMon problème c'est que l afficheur affiche juste la 1er ligne tout noir et rien dans la 2eme ligne meme si la carte vide (ne contient aucun code).
Et merci
Diminuer au contraste du LCD ou reinitialise la DDRAM memoire ...
RépondreSupprimerVerifié les donnée envoyer vers les pins du GPIO
Diminuer au contraste du LCD ou reinitialise la DDRAM memoire.comment ca?
RépondreSupprimervoila mon initialisation je crois qu'içl y a une chose qui cloche
void lcd_init(void)
{
volatile unsigned char i = 0;
volatile unsigned int delayCnt = 0;
RCC_APB2PeriphClockCmd(LCD_CLK_LINE, ENABLE);
GPIO_InitStructure.GPIO_Pin = LCD_D4|LCD_D5|LCD_D6|LCD_D7|LCD_RS|LCD_RW|LCD_EN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(LCD_GPIO, &GPIO_InitStructure);
GPIO_ResetBits(LCD_GPIO, LCD_RS | LCD_EN | LCD_RW);
for(delayCnt = 0; delayCnt < 300000; delayCnt++);
for(i = 0; i < 3; i++) {
lcd_writenibble(0x03);
for(delayCnt = 0; delayCnt < 30000; delayCnt++);
}
lcd_writenibble(0x02);
for(delayCnt = 0; delayCnt < 6000; delayCnt++);
lcd_writecommand(HD44780_FUNCTION_SET |
HD44780_FONT5x7 |
HD44780_TWO_LINE |
HD44780_4_BIT);
lcd_writecommand(HD44780_DISPLAY_ONOFF |
HD44780_DISPLAY_OFF);
lcd_writecommand(HD44780_CLEAR);
lcd_writecommand(HD44780_ENTRY_MODE |
HD44780_EM_SHIFT_CURSOR |
HD44780_EM_INCREMENT);
lcd_writecommand(HD44780_DISPLAY_ONOFF |
HD44780_DISPLAY_ON |
HD44780_CURSOR_OFF |
HD44780_CURSOR_NOBLINK);
}
Et merci
Take a look I have been updatet the article . I have met an example of project that he work perfectly . Take a look and define your error !
RépondreSupprimer:D
STM32_LCD Code Example file not found, please, can you re-upload the code?
RépondreSupprimerBonjour,
RépondreSupprimerJ'ai lu l'article en entier et je le trouve vraiment bon. Le seul bémol est que l'exemple de code est HS sur le site de téléchargement.
Pourriez-vous s'il vous plait le mettre à jour.
Merci par avance.
please reupload the link
RépondreSupprimer