STM32F0xx ILI9341 TFT-Display

OP #5961811
Lesenswert?

Hallo erstmal in die Runde!

Ich bin neu hier im Forum und in etwa genauso neu in der Programmierung 
von STM32 MCUs.

Momentan arbeite ich mich für eine Arbeit in das STM32F072B-DISCO Board 
ein und versuche vergebens ein 3,5" Display (ILI9341) über SPI 
anzusteuern.

Während meiner Suche bin ich auf folgendes GitHub-Projekt gestoßen:
https://github.com/martnak/STM32-ILI9341

Mit seinem Treiber soll man mit jedem STM32x Chip in der Lage sein ein 
Display zu betreiben.

Soweit so gut. Ich habe die h/c Dateien in mein Projekt geladen und 
etwas auf mein Board angepasst. Nun ist es jedoch so, dass ich Probleme 
bei der Erstellung einer SPI Instanz habe. In der 
"ILI9341_STM32_Driver.h" wird diese mittels
#define HSPI_INSTANCE    &hspi5
definiert. Hier kriege ich jedoch die Fehlermeldung "'hspi5' undeclared 
(first use in function)". Auch in der Quelldatei melden einige 
Funktionen in denen HSPI_INSTANCE vorkommt dadurch natürlich Fehler. Die 
SPI_HandleTypeDef hspi5 deklariere ich in der main.c. (Ist da der 
Felher?)

Im Vorhinein entschuldige ich mich schonmal für die eine oder andere 
Wissenslücke. Ich programmiere nun seit knapp 1 Woche in C und bin mir 
bei vielen Sachen noch nicht bewusst, wie sie richtig zu handhaben sind. 
(Gerade bei STM32 scheint mir der Einstieg schwer zu sein, da komplex 
und nicht so komfortabel wie Arduino etc.)

Sollte es helfen, kann ich gerne auch den Code Hochladen.

Weitere Info:
Board: STM32F072B - DISCO
IDE: STM32Cube IDE
Display: https://www.aliexpress.com/item/32960934541.html

Für alternative leichter verwendbare Treiber wäre ich natürlich auch 
dankbar! :-)

Vielen Dank!
Henning
OP #5961885
Lesenswert?

Harry L. schrieb:
> Damit hast du dir das denkbar ungünstigste Board für dein Vorhaben
> ausgesucht.
> Viel zu wenig RAM für solche Display-Spielereien.
>
> Henning R. schrieb:
>> Fehlermeldung "'hspi5' undeclared
>


Das hatte ich schon vermutet, ich habe ansonsten noch ein STM32F429I - 
DISCO, da ist ja auch ein Display drauf verbaut, jedoch parallel 
geschaltet.

> Ja logisch!
> SPI5 gibt es beim F072 auch nicht.

Genau! um den Code aber nicht überall abändern zu müssen habe ich 
erstmal die TypeDef hspi5 genannt allerdings eine SPI2 Instanz damit 
erstellt. (Wenn man das so sagen kann?)

Also würdest du mir raten direkt das Größere Board zu nehmen?
#5961901
Lesenswert?

Henning R. schrieb:
> Genau! um den Code aber nicht überall abändern zu müssen habe ich
> erstmal die TypeDef hspi5 genannt allerdings eine SPI2 Instanz damit
> erstellt. (Wenn man das so sagen kann?)

hspix ist bereits ein definierter Typ: SPI_HandleTypeDef

Ich würde es so machen:
1
SPI_HandleTypeDef *hILI9341;
2

3
hILI9341 = hspi2;

und dann überall nur noch hILI9341 nutzen.
Der Austausch von hspi5 ist dank Refactoring ja kein Problem.

Henning R. schrieb:
> Also würdest du mir raten direkt das Größere Board zu nehmen?

Allerdings!
Gast #5961903
Lesenswert?

Henning R. schrieb:
> Das hatte ich schon vermutet, ich habe ansonsten noch ein STM32F429I -
> DISCO, da ist ja auch ein Display drauf verbaut, jedoch parallel
> geschaltet.

Benutze das doch, da gibt es ja auch fertige Bibliotheken & Beispiele 
für. Das "parallele" Display ist letztlich einfacher zu benutzen (Pixel 
schreiben = Schreibzugriffe in RAM) und ist schneller 
(Bildaktualisierung).
OP #5961918
Lesenswert?

@Dr. Sommer
@Harry L.

Alles klar, dann wird es wohl am sinnvollsten sein ich lege die Sache 
erstmal aufs Eis und befasse mich mit der parallelen Ansteuerung und dem 
größeren Board!

Vielen Dank auf alle Fälle. Es wird sicherlich nicht die letzte Frage 
sein die ich habe. Seid gewarnt ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren