Moin mikrocontroller.net-Community,
ich wollte mich gerne mit meinen Anliegen an euch wenden, mit der Hoffnung, dass mir da jmd. Weiterhelfen kann.
Es geht darum, dass ich gerne ein OLED-Display mit der Bibliothek SSD1309 auf ein beliebigen STM32-Board zum Laufen bringen möchte.
(1) Bisher habe ich das OLED-Display mit der SSD1309-Biblothek nur über die Arduino IDE und für Arduino-Board in Verwendung gehabt. Das hat auch sehr gut funktioniert.
Es gibt auch die Option STM32-Boards in Kombi mit der Arduino IDE benutzen zu können. Z.B. kann man die SSD1309-Bib. unter der Verwendung der Arduino IDE mit dem STM32-Nucleo 64 Modell STM32F401RE verwenden. Das funktioniert!
Bei der Verwendung des Mikrocontroller-Board STM32L432KC (Nucleo-32) und bei dem STM32F303K8 (Nucleo-32) funktioniert die SSD1309-Bib. leider nicht. D.h. man kann diese Modell unter der Verwendung der Arduino IDE auswählen auch mit der SSD1309-Bib. flashen, aber auf dem Dsiplay gibt es keine gewünschte Reaktion.
Das ist zeimlich verwiirent für mich!
(2) Aus dem Grund wollte ich einen neuen Versuch mit der STM32 IDE STM32CubeIDE starten. Meine Kennnisse im Umgang mit der STM32 IDE klappen in sofern, dass ich den Mikrokontroller richtig einrichten kann.
Bei Youtube habe ich ein hilfreiches Tutorial zur Implementierung eines OLED-Displays mit der SSD1306-Bib. (I2C) gefunden. Zur ersten Hilfstellung habe ich das Tutorial nachgemacht. Die Umsetztung des Tutorial hat mit einem OLED-Display und der SSD1306-Bib. (I2C) hat auch soweit geklappt. https://www.youtube.com/watch?v=z1Px6emHIeg&t=9s
Leider ist das nicht genau das, was ich suche. Den ich würde ja gerne die SSD1309-Bib im SPI-Modus auf einen beliebigen STM32 zum Laufen bringen.
Ich ich auch ein anderes Youtube-Video geschaut. Da wird zwar die gleiche SSD1306-Bib. verwendet, aber dafür nicht I2C-, sondern SPI-Modus eingestellt. Daher bin ich mir relativ sicher, dass ich bei der Einstellung per STM32 IDE keine Fehler gemacht habe. Ich denke der Knackpunkt liegt in der Einrichtung der SSD1306-Bibliothek selber. https://www.youtube.com/watch?v=F1B3G4o3d48&t=193s
(3) Im nächsten Schritt wäre der Einsatz der SSD1306-Bib. im SPI-Modus sehr hilfreich. Ich gehe davon aus, dass ich so die Erfahrung machen könnte, um das Gelernte dann vielleicht anschließend mit der SSD1309-Bib. anzuwenden.
-
In der Datei ssd1306_conf.h kann man den Modus I2C oder SPI, das SM32-Board und die Pixelgröße einstellen.
-
In der Datei ssd1306.h ist die Pinbelegung des Boards.
-
Und in der Datei ssd1306.c sind die entsprechenden Funktionen
Wenn ich z.B. das Mikrocontroller-Board STM32F401RE in der STM32CubeIDE einstelle. Den SPI-Modus auswähle und in der Datei ssd1306_conf.h SPI auswhle, und in der Datei ssd1306.h die ausgwählten Pins definiere, dann bekomme ich keine Fehlermeldung. Ich kann genau wie bei dem Tutorial SSD1306 I2C die Funktionen in der main.c verwenden, um das Display zu beschreiben. Aber auf dem Display selber wird nicht gezeigt.
Das ist momentan der Stand der Dinge bei mir und ich würde mich sehr freuen, wenn mir da jmd. weiterhelfen könnte. Und möchte mich im Vorfeld für deine Hilfestellung/Problemlösung bedanken!
Gruß Sebastian S.