Hi,
Ich versuche gerade, ein I2C LCD mittels STM32F407 zum Laufen zu
bringen. Nach Anstecken des LCDs sehe ich zwei Balken. Nach der
Initialisierung bekomme ich aber lediglich in der ersten Reihe einen
Balken anstatt einen blinkenden Cursor oder was auch immer. Was ich
festellen kann:
- Delays und I2C Schnittstelle funktionieren.
- Adresse des LCDs wird auch mit einem ACK beantwortet. Die Adresse ist
also die Richtige.
IO Expander ist der PCF8574. Schaltplan befindet sich im Anhang und
wurde von folgender Seite kopiert:
https://alselectro.wordpress.com/2016/05/12/serial-lcd-i2c-module-pcf8574/
Bilder vom Logik Analyzer sind ebenfalls im Anhang; sowohl die gesamte
Initialisierung als auch zu jedem einzelnem Kommando der Initialiserung.
Der Datenaustausch sieht richtig für mich aus? Ich verwendet konstant
5ms Pause nach jedem Kommando, und 25us für den Enable Puls.
Meine I2C Kommunikation ist so eingestellt, dass ich nach jeder
Instruktion (z.B. LCD_cmd(0x28)) nachdem die Daten gesendet wurden das
Stoppbit in der I2C setze. Mache ich bei der Initialisierung etwas
grundlegend falsch?
Die LCD Init Funktionen sowie die I2C Funktion sind hier:
1
voidLCD_init()
2
{
3
GPIO_init();
4
I2C_init();
5
delay_init();
6
7
// Boot up
8
delay_25us(200);// 25us*200=5ms
9
delay_25us(200);// 25us*200=5ms
10
delay_25us(200);// 25us*200=5ms
11
12
LCD_cmd(0x30);// LCD soft reset
13
delay_25us(200);// 25us*200=5ms
14
15
LCD_cmd(0x00);// LCD enable
16
delay_25us(200);// 25us*200=5ms
17
18
LCD_cmd(0x00);// LCD enable
19
delay_25us(200);// 25us*200=5ms
20
21
22
LCD_cmd(0x28);// 4bit mode + Set function + 2 line
23
delay_25us(200);// 25us*200=5ms
24
25
LCD_cmd(0x06);// increment automatically
26
delay_25us(200);// 25us*200=5ms
27
28
LCD_cmd(0x0F);// Turn display on, cursor on, blinking on
Al3ko -. schrieb:> Die LCD Init Funktionen sowie die I2C Funktion sind hier:
Mannomann ...
Längeren (als etwa eine Bildschirmseite) Source Code als Anhang!
Thema Verfehlung schrieb:> Al3ko -. schrieb:>> Die LCD Init Funktionen sowie die I2C Funktion sind hier:>> Mannomann ...> Längeren (als etwa eine Bildschirmseite) Source Code als Anhang!
Sorry... :)
Anbei die Funktionen als Anhang.
SORRY.
Gruß,
Ich habe vor einer Weile mal angefangen und wollte für das Wiki hier
PCF8574-HD44780 Infos eintragen. Den Code habe ich schon geschrieben und
ausprobiert.
Ist zwar für AVR, aber durch die Fleury I2C Lib sehr gut abstrahiert und
problemlos auf andere Controller übertragbar. Auf STM32 auch schon
ausprobiert, nur finde ich da die Dateien nicht mehr.
Ich habe den Code von U. Radig für meine Zwecke angepasst/erweitert.
Hiermit hast du auf jeden Fall schonmal ein funktionierendes Beispiel.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang