Inhaltsverzeichnis:

Animation auf 16x2 I2c LCD MIT STM32 Nucleo - Gunook
Animation auf 16x2 I2c LCD MIT STM32 Nucleo - Gunook

Video: Animation auf 16x2 I2c LCD MIT STM32 Nucleo - Gunook

Video: Animation auf 16x2 I2c LCD MIT STM32 Nucleo - Gunook
Video: Arduino Projekt: SSD1306 OLED mit 128x64 px an STM32 über I2C Bus betreiben und RTC Zeit anzeigen 2024, Juli
Anonim
Image
Image

Hallo Freunde, dies ist ein Tutorial, das zeigt, wie man eine benutzerdefinierte Animation auf einem 16x2-i2c-LCD erstellt. Für das Projekt werden nur sehr wenige Dinge benötigt. Wenn Sie also Zugriff auf den Code haben, können Sie ihn in 1 Stunde fertigstellen.

Nachdem Sie dieses Tutorial befolgt haben, können Sie Ihre eigene benutzerdefinierte Animation auf dem Mikrocontroller erstellen.

FÜR PROJEKT BENÖTIGTE ELEKTRONIK:-

1) STM32L476RG Nucelo-Board

2) 16x2 i2c-LCD

3) Überbrückungsdrähte

SOFTWARE BENÖTIGT:-

1)STM32cubemx

2)Keil uVision5

Anschlüsse: Verbinden Sie PB6 mit I2C-SCK und I2C-SDA mit PB7-Pin der Nukleoplatine.

Schritt 1: Öffnen Sie STM32Cubemx und nehmen Sie die Einstellungen entsprechend den angehängten Bildern vor

Öffnen Sie STM32Cubemx und nehmen Sie die Einstellungen entsprechend den angehängten Bildern vor
Öffnen Sie STM32Cubemx und nehmen Sie die Einstellungen entsprechend den angehängten Bildern vor
Öffnen Sie STM32Cubemx und nehmen Sie die Einstellungen entsprechend den angehängten Bildern vor
Öffnen Sie STM32Cubemx und nehmen Sie die Einstellungen entsprechend den angehängten Bildern vor

1) Nachdem Sie STM32L476RG als Mikrocontroller in STM32CUBE ausgewählt haben, wählen Sie die I2C1-Schnittstelle als i2c.

2) Stellen Sie den Taktwert auf einen maximalen Wert (80 MHz) ein

3) Wählen Sie danach Timer1 und Timer2 und initialisieren Sie später die Werte, wie im späteren Teil des Tutorials angegeben.

4) Wählen Sie Timer1-Update-Interrupt und Timer2-Global-Interrupt in den NVIC-Einstellungen aus.

5)Generieren Sie Code für das Projekt in Keil 5.

Schritt 2: Erstellen Sie die erforderlichen benutzerdefinierten Bilder und fügen Sie deren Codes in der Datei Custom_char.h hinzu

Erstellen Sie die erforderlichen benutzerdefinierten Bilder und fügen Sie deren Codes in der Datei Custom_char.h hinzu
Erstellen Sie die erforderlichen benutzerdefinierten Bilder und fügen Sie deren Codes in der Datei Custom_char.h hinzu
Erstellen Sie die erforderlichen benutzerdefinierten Bilder und fügen Sie deren Codes in der Datei Custom_char.h hinzu
Erstellen Sie die erforderlichen benutzerdefinierten Bilder und fügen Sie deren Codes in der Datei Custom_char.h hinzu

1) Jede Position in einem 16x2 LCD kann in 32 Segmente unterteilt werden, jedes Segment besteht aus 5x8 Pixeln.

2) Sie können das Bild und seine Begrenzung auf dem Segment visualisieren und jeden Teil des Segments mit dem Wert 1 darstellen, wenn die Position auf dem Segment Teil des Bildes ist, andernfalls als Wert 0 zuweisen, der Werte für jede Reihe wie im Anhang gezeigt angibt Bild.

3) Tragen Sie diesen Wert aus Schritt 2 in die Datei custom_char.h ein, die im angehängten Code angegeben ist.

Schritt 3: Relevanten Code in Keil 5 hinzufügen

Relevanten Code in Keil 5. hinzufügen
Relevanten Code in Keil 5. hinzufügen
Relevanten Code in Keil 5. hinzufügen
Relevanten Code in Keil 5. hinzufügen
Relevanten Code in Keil 5. hinzufügen
Relevanten Code in Keil 5. hinzufügen

1) Schreiben Sie den Befehl zum Starten von Timer1 und Timer2 in die Datei main.c. Timer 1 wird verwendet, um das LCD zu löschen und Timer 2 wird zum Anzeigen der Bilder verwendet.

2)Schreiben Sie Werte für Prescalar- und Autoreload-Werte für Timer1 und Timer2 in die Datei main.c, die für beide Timer gleich ist.

3) Fügen Sie den relevanten Code in der Interrupt-Routine Timer1 und für die Interrupt-Routine Timer2 in der Datei stm32l4_it.c hinzu.

Empfohlen: