Hallo, hat einer eine Bib für ein STM32F103 für ein Standard HD44780? Ich kann keine finden.. sonst würde ich versuchen zu portieren und in dem Artikel zu verlinken... VG
Nolan, in welcher Sprache? Für C findest man zig 1.000 Versionen.
Sorry für C / 4 Bit Modus und 4 Zeilen (kann ich aber auch ändern). Kein I2C. Wenn jemand ein Link hat ... wäre super...
Bist du sicher, daß ein STM32 das Richtige für dich ist, wenn du das nicht einmal aus dem Code und dem Datenblatt des HD44780 abstrahieren kannst?
Du darfst dazu gerne den Code aus meinem Buch Band 3 Kapitel 11.4 kopieren. http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%203.pdf Die wenigen Zeilen in der Datei hardware.h müsstest du passend zu deinem STM32 umschrieben. Der Include für <pgmspace.h> entfällt, dementsprechend entfällt auch die Funktion LCD_write_P(). Da es beim STM32 keine delay.h gibt, musst du eine eigene Delay Routine benutzen. Eine Anregung dazu siehe http://stefanfrings.de/stm32/index.html#cmsis Wichtig ist nur, dass deine Delays mindestens so lange sind, wie in meinem Quelltext. Länger schadet nicht.
Harry L. schrieb: > Bist du sicher, daß ein STM32 das Richtige für dich ist, wenn du das > nicht einmal aus dem Code und dem Datenblatt des HD44780 abstrahieren > kannst? Schaffe ich vielleicht. Aber ich wenn das Teil so standard ist, dann habe ich gehofft schon was fertiges zu finden.... Stefanus F. schrieb: > Die wenigen Zeilen in der Datei hardware.h müsstest du passend zu deinem > STM32 umschrieben. Der Include für <pgmspace.h> entfällt, > dementsprechend entfällt auch die Funktion LCD_write_P(). hast du schön getrennt. super. Falls noch jemand etwas hat ... ich bin gespannt...
Nolan schrieb: > Falls noch jemand etwas hat ... ich bin gespannt... Das riecht aber penetrand nach Faulheit, mein Herr. Ich bin gespannt wie du deine Zukunft mit Copy&Paste und sonst möglichst wenig Eigenaktivität meisterst.
Beo Bachta schrieb: > Das riecht aber penetrand nach Faulheit, mein Herr. Korret. Danke für deinen sinnlosen Beitrag. Ich veröffentliche auch viel Code im Netz und habe gerade einfach wenig Zeit...
Harry L. schrieb: > wenn du das > nicht einmal aus dem Code und dem Datenblatt des HD44780 abstrahieren > kannst? Ich finde solche Gedanken generell falsch: C als Sprache ist gerade deshalb so stark, daß man fremde Code zu eigenem Projekt frei anschalten kann, ohne in Code selbst tief greifen zu müssen. Deshalb selbständig Fahrrad erfinden... Es sei denn, rein für Üben.
> C als Sprache ist gerade deshalb so stark, daß man fremde Code zu > eigenem Projekt frei anschalten kann, ohne in Code selbst tief greifen > zu müssen. Naja, ich empfinde das eher als "besser als nichts". Wiederverwendbarkeit wurde in moderneren Programmiersprachen, welche weniger Hardwarenah sind, wesentlich besser umgesetzt. Ich will aber damit C nicht schlecht reden, denn die Nähe zur Hardware ist dort ja anscheinen gewollt - zumindest in µC Umfeld.
Ist zwar keine Bib, steht aber hier in der Codesammlung: Beitrag "Frequenz- und Pulsweitenmessung mit STM32F407" 2. Datei STM32F4_LCD.c
und hier ist noch eine C++ Variante für mbed. Eine C++ Komponente hat den simplen Vorteil das ich einfach mehrere Instanzen anlegen kann, die meisten C Lösungen nutzen globale Variablen und für mehrere Displays muss man den Code ziemlich umkrempeln: https://os.mbed.com/users/simon/code/TextLCD/ wenn das F103 das berühmte BluePill Board ist kann ich bei Interesse die Kommandozeilen Anweisungen posten um damit ein Projekt zu erstellen.
Maxim B. schrieb: > Harry L. schrieb: >> wenn du das >> nicht einmal aus dem Code und dem Datenblatt des HD44780 abstrahieren >> kannst? > > Ich finde solche Gedanken generell falsch: > C als Sprache ist gerade deshalb so stark, daß man fremde Code zu > eigenem Projekt frei anschalten kann, ohne in Code selbst tief greifen > zu müssen. > Deshalb selbständig Fahrrad erfinden... Es sei denn, rein für Üben. In der Embedded-Entwicklung gibts nun mal keine gebratenen Tauben auf dem Silbertablett, und die o.g. Beispiele sind nahezu genau das, was der TO sucht: Ansteuerung eines HD44780 im 4bit-Mode. Das Einzige, was nicht passt, ist, daß in den Beispielen ein I²C-Portexpander verwendet wird, statt direkt die Ports der MCU. Wenn man sich nur grundlegend in die verwendete MCU eingearbeitet, und die Grundlagen dieser Ansteuerung auch nur ansatzweise verstanden hat, sollte es wirklich kein Problem sein, den Code auf andere IO-Pis umzustellen. Mehr ist da nämlich wirklich nicht zu tun. Bei so hardwarenahen Aufgaben "absolute Kompatibilität" zu allen möglichen Hardware-Varianten zu fordern ist schon ziemlich naiv, und da hilft einem auch die Portabilität von C nicht weiter.
:
Bearbeitet durch User
> Das Einzige, was nicht passt, ist, daß in den Beispielen ein > I²C-Portexpander verwendet wird, statt direkt die Ports der MCU. Nicht bei meinem Beispiel. > Wenn man sich nur grundlegend in die verwendete MCU eingearbeitet, und > die Grundlagen dieser Ansteuerung auch nur ansatzweise verstanden hat, > sollte es wirklich kein Problem sein, den Code auf andere IO-Pis > umzustellen. Ja, sehe ich auch so.
Harry L. schrieb: > Wenn man sich nur grundlegend in die verwendete MCU eingearbeitet, und > die Grundlagen dieser Ansteuerung auch nur ansatzweise verstanden hat, > sollte es wirklich kein Problem sein, den Code auf andere IO-Pis > umzustellen. Hier hast du Recht. Es gibt verschiedene Lösungen. Leichter sind die in Verwendung, wo Arbeit mit Pins ausgegliedert ist. Dann reicht es nur, eine Funktion anders zu schreiben. Trotzdem finde ich keine Grunde, alles von Null aus selber zu erfinden.
Maxim B. schrieb: > Trotzdem finde ich keine Grunde, alles von Null aus selber zu erfinden. Du darfst mich gerne "old-school" nennen, aber gerade die Ansteuerung solch eines typischen Text-Display sollte man m.M.n. als Anfänger/Einsteiger wenigstens einmal selbst gemacht haben. Das ist vom Umfang her sehr überschaubar, kein Hexenwerk und eine ausgezeichnete Übung für Anfänger, zumal man den Dingern ja an fast jeder Ecke begegnet.
Hugo schrieb: > für die Faulen unter uns: > > Youtube-Video "Tut:: HD44780 LCD mit STM32 ansteuern (25) - > Mikrocontroller Programmieren [ger]" Wer es sich noch nicht angeschaut hat ... anbei ein Screenshot als "Empfehlung" sich das mal anzutun. Chaos pur sag ich nur. Und das mehr als eine Stunde lang. "LCD Display" mag er auch sehr gerne .... Zitat von seiner Site: "Viele würden mich als Freak oder Nerd bezeichnen, ich bevorzuge den Begriff Geek." Bescheidenheit ist eine Zier, doch weiter kommt man ohne ihr.
Stefanus F. schrieb: > Da es beim STM32 keine delay.h gibt, musst du eine eigene Delay Routine > benutzen. Was für ein Schwachsinn. HAL_Delay() ist doch standardmässig verfügbar.
> Was für ein Schwachsinn. > HAL_Delay() ist doch standardmässig verfügbar. Nicht jeder verwendet das HAL Framework.
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.