Wie man STM32 Blue Pill mit 16x2 Zeichen LCD-Modul mit Arduino IDE verbindet?
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Das STM32 Blue Pill (STM32F103C8T6) kann mit einem 16x2 LCD-Modul über das I2C-Protokoll (empfohlen) oder direkte GPIO-Verbindungen verbunden werden. Im Folgenden werden beide Methoden beschrieben.
🛠️ 1. Benötigte Komponenten
-
STM32 Blue Pill (STM32F103C8T6)
-
16x2 LCD-Modul
-
I2C-LCD-Adaptermodul (für die I2C-Methode)
-
Breadboard
-
Jumper-Kabel
📌 Methode 1: Verwendung der I2C-Schnittstelle (empfohlen)
⚡ Pinbelegung (I2C-Adapter am LCD)
I2C-LCD-Pin | STM32-Pin | Beschreibung |
---|---|---|
VCC | 3.3V | Stromversorgung |
GND | GND | Masse |
SDA | PB7 | I2C-Datenleitung |
SCL | PB6 | I2C-Taktleitung |
📦 Erforderliche Bibliotheken installieren
In der Arduino IDE:
-
Sketch > Bibliothek einbinden > Bibliotheken verwalten
-
Suchen und installieren:
-
LiquidCrystal_I2C
-
💻 I2C-LCD-Codebeispiel
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Initialisiere das LCD mit der I2C-Adresse (standard: 0x27 oder 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); // LCD initialisieren
lcd.backlight(); // Hintergrundbeleuchtung einschalten
lcd.setCursor(0, 0); // Cursor auf erste Zeile setzen
lcd.print("STM32 + LCD");
lcd.setCursor(0, 1); // Cursor auf zweite Zeile setzen
lcd.print("Hallo Welt!");
}
void loop() {
// Kein Code hier
}
🚀 Hochladen und Testen
-
Wählen Sie Generic STM32F103C Series unter Werkzeuge > Board.
-
Stellen Sie sicher, dass die Upload-Methode: auf STM32CubeProgrammer (SWD) oder Serial eingestellt ist.
-
Laden Sie den Code hoch.
-
Sie sollten den Text "STM32 + LCD" und "Hallo Welt!" auf dem Display sehen.
📌 Methode 2: Direkte GPIO-Schnittstelle (ohne I2C)
Falls Sie kein I2C-Modul verwenden, können Sie das LCD direkt an GPIO-Pins anschließen.
⚡ Pinbelegung (direkte GPIO)
LCD-Pin | STM32-Pin | Beschreibung |
VSS | GND | Masse |
VCC | 3.3V | Stromversorgung |
VEE | Potentiometer (für Kontrast) | Kontrastregelung |
RS | PA0 | Register Select |
RW | GND | Lesen/Schreiben (GND für Schreiben) |
E | PA1 | Enable |
D4 | PA2 | Datenbit 4 |
D5 | PA3 | Datenbit 5 |
D6 | PA4 | Datenbit 6 |
D7 | PA5 | Datenbit 7 |
A | 3.3V | LED Anode |
K | GND | LED Kathode |
📦 Erforderliche Bibliothek installieren
-
Gehen Sie zu Sketch > Bibliothek einbinden > Bibliotheken verwalten.
-
Suchen und installieren:
-
LiquidCrystal
-
💻 GPIO-LCD-Codebeispiel
#include <LiquidCrystal.h>
// Pin-Konfiguration (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);
void setup() {
lcd.begin(16, 2); // LCD initialisieren
lcd.setCursor(0, 0);
lcd.print("STM32 + LCD");
lcd.setCursor(0, 1);
lcd.print("Direkte GPIO!");
}
void loop() {
// Kein Code hier
}
🚀 Hochladen und Testen
-
Wählen Sie Generic STM32F103C Series unter Werkzeuge > Board.
-
Laden Sie den Code hoch.
-
Der Text "STM32 + LCD" und "Direkte GPIO!" sollte auf dem Display erscheinen.
🛡️ Fehlerbehebung
-
I2C-Problem: Überprüfen Sie die I2C-Adresse (0x27 oder 0x3F). Verwenden Sie einen I2C-Scanner-Sketch, um die Adresse zu finden.
-
Anzeigeproblem: Passen Sie das Potentiometer für den Kontrast an.
-
Verdrahtung: Überprüfen Sie die Pin-Verbindungen.
-
Stellen Sie sicher, dass die STM32-Treiber korrekt in der Arduino IDE installiert sind.