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
Henning R. schrieb: > das STM32F072B-DISCO Board 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 Ja logisch! SPI5 gibt es beim F072 auch nicht.
> Während meiner Suche bin ich auf folgendes GitHub-Projekt gestoßen:
Vielleicht solltest du erstmal das Datenblatt deiner MCU und deines
Display suchen, finden und lesen? Ich mein ja nur....
Olaf
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?
Hallo Olaf, natürlich macht das Sinn. Jedoch ist es am Anfang wirklich eine Informationswelle die einem in solchen Handbüchern überrollt. Viel schlauer wird man dadurch zunächst erstmal nicht...
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!
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).
@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 ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.