{"id":129757,"date":"2026-03-16T14:00:51","date_gmt":"2026-03-16T13:00:51","guid":{"rendered":"https:\/\/riverdi.com\/blog\/a-guide-to-fundamental-display-operations-on-stm32"},"modified":"2026-03-16T14:00:51","modified_gmt":"2026-03-16T13:00:51","slug":"a-guide-to-fundamental-display-operations-on-stm32","status":"publish","type":"post","link":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32","title":{"rendered":"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #002175;color:#002175\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #002175;color:#002175\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Steuerung_der_Hintergrundbeleuchtung_von_Riverdi_STM32-Displays\" >Steuerung der Hintergrundbeleuchtung von Riverdi STM32-Displays<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Unterstuetzte_Riverdi_STM32_Module\" >Unterst\u00fctzte Riverdi STM32 Module<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Prinzip_der_Steuerung_der_Hintergrundbeleuchtung\" >Prinzip der Steuerung der Hintergrundbeleuchtung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Hardware-_und_Softwareanforderungen\" >Hardware- und Softwareanforderungen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Beispiel_fuer_eine_PWM-Konfiguration\" >Beispiel f\u00fcr eine PWM-Konfiguration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Helligkeitsbereich_und_Bedeutung\" >Helligkeitsbereich und Bedeutung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Einstellung_der_Laufzeithelligkeit\" >Einstellung der Laufzeithelligkeit<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Bildschirmdrehung_auf_STM32-Displays\" >Bildschirmdrehung auf STM32-Displays<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Bildschirmdrehung_mit_LVGL\" >Bildschirmdrehung mit LVGL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#LVGL-Initialisierung_PARTIAL_Rendering_Rotation\" >LVGL-Initialisierung (PARTIAL Rendering + Rotation)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Flush-Callback_Software-Rotation_in_LTDC-Framebuffer\" >Flush-Callback (Software-Rotation in LTDC-Framebuffer)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Ergebnis\" >Ergebnis<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Bildschirmdrehung_auf_STM32_mit_TouchGFX\" >Bildschirmdrehung auf STM32 mit TouchGFX<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#TouchGFX_Rotationskonzept\" >TouchGFX Rotationskonzept<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Aktivieren_der_Bildschirmdrehung_im_TouchGFX-Designer\" >Aktivieren der Bildschirmdrehung im TouchGFX-Designer<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\/#Zusammenfassung\" >Zusammenfassung<\/a><\/li><\/ul><\/nav><\/div>\n<p>Die Steuerung der Hintergrundbeleuchtung und die Drehung des Bildschirms sind zentrale Display-Operationen, die das Systemverhalten von STM32-basierten Designs direkt beeinflussen. Sie sind unabh\u00e4ngig von der Anwendungslogik, aber eng mit der Hardwarekonfiguration und den Funktionen des Grafik-Frameworks verbunden. <\/p>\n<p>In diesem Artikel erkl\u00e4ren wir, wie Riverdi STM32-Displaymodule die PWM-basierte Steuerung der Hintergrundbeleuchtung mit TIM15 und einem speziellen LED-Treiber implementieren und wie die Bildschirmdrehung in LVGL- und TouchGFX-Projekten unterschiedlich gehandhabt wird. Der Schwerpunkt liegt dabei auf praktischen Implementierungsdetails und der architektonischen Trennung. <\/p>\n<h2><span class=\"ez-toc-section\" id=\"Steuerung_der_Hintergrundbeleuchtung_von_Riverdi_STM32-Displays\"><\/span>Steuerung der Hintergrundbeleuchtung von Riverdi STM32-Displays<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Die Steuerung der Hintergrundbeleuchtung ist eine der grundlegendsten Operationen bei der Arbeit mit eingebetteten Displays. Im Gegensatz zum Grafik-Rendering oder der Touch-Behandlung <strong>ist die Steuerung der Hintergrundbeleuchtung unabh\u00e4ngig vom GUI-Framework<\/strong> und h\u00e4ngt nicht davon ab, ob die Anwendung LVGL, TouchGFX oder einen anderen Grafik-Stack verwendet. <\/p>\n<p>Bei Riverdi STM32-basierten Displaymodulen wird die Helligkeit der Hintergrundbeleuchtung \u00fcber ein <strong>Hardware-PWM-Signal<\/strong> gesteuert <strong>,<\/strong> das von einem STM32-Timer erzeugt wird.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Unterstuetzte_Riverdi_STM32_Module\"><\/span>Unterst\u00fctzte Riverdi STM32 Module<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Die in diesem Artikel beschriebene Methode gilt f\u00fcr Riverdi STM32 Displaymodule wie z.B.:<\/p>\n<ul>\n<li>RVT121<\/li>\n<li>RVT101<\/li>\n<li>RVT70<\/li>\n<li>RVT50<\/li>\n<\/ul>\n<p>Das gleiche Prinzip kann auf anderen Riverdi STM32-Plattformen verwendet werden, die \u00fcber einen PWM-gesteuerten Eingang f\u00fcr die Hintergrundbeleuchtung verf\u00fcgen.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Prinzip_der_Steuerung_der_Hintergrundbeleuchtung\"><\/span>Prinzip der Steuerung der Hintergrundbeleuchtung<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In Riverdi STM32-basierten Display-Modulen steuert der Mikrocontroller die LED-Hintergrundbeleuchtung nicht direkt an. Stattdessen erzeugt der STM32 ein <strong>PWM-Steuersignal<\/strong>, das in eine spezielle <strong>Treiberschaltung f\u00fcr die LED-Hintergrundbeleuchtung<\/strong> eingespeist wird <strong>.<\/strong> <\/p>\n<p>Der Hintergrundbeleuchtungstreiber ist eine Konstantstromquelle, die den durch die LED-Strings flie\u00dfenden Strom reguliert. Das PWM-Signal moduliert die LED-Spannung nicht direkt. Stattdessen steuert es das effektive Tastverh\u00e4ltnis des Treibers, so dass der durchschnittliche LED-Strom zwischen 0% und 100% seines Nennwerts variieren kann.  <\/p>\n<p>Die Architektur l\u00e4sst sich wie folgt zusammenfassen:<\/p>\n<ul>\n<li>Der STM32 Timer (z.B. TIM15) erzeugt ein PWM-Signal.<\/li>\n<li>Das PWM-Signal wird an den Treibereingang f\u00fcr die Hintergrundbeleuchtung weitergeleitet.<\/li>\n<li>Der Hintergrundbeleuchtungstreiber regelt den LED-Strom.<\/li>\n<li>as Tastverh\u00e4ltnis des PWM-Signals bestimmt die effektive Helligkeit.<\/li>\n<\/ul>\n<p>Dies bedeutet:<\/p>\n<ul>\n<li>Die PWM-Frequenz wird durch die Timer-Konfiguration definiert<\/li>\n<li>Die Helligkeit ist proportional zum PWM-Tastverh\u00e4ltnis.<\/li>\n<li>Der LED-Strom wird immer durch den Treiber geregelt, nicht durch den GPIO der MCU.<\/li>\n<\/ul>\n<p>H\u00f6here Einschaltdauer \u2192 h\u00f6herer durchschnittlicher LED-Strom \u2192 helleres Display<\/p>\n<p>Geringeres Tastverh\u00e4ltnis \u2192 geringerer durchschnittlicher LED-Strom \u2192 d\u00fcsterere Anzeige<\/p>\n<p>Denn die LEDs werden von einer geregelten Stromquelle betrieben:<\/p>\n<ul>\n<li>Die Helligkeitssteuerung ist linear und stabil,<\/li>\n<li>Die Lebensdauer der LED ist gesch\u00fctzt,<\/li>\n<li>Das thermische Verhalten ist vorhersehbar,<\/li>\n<li>Die Effizienz bleibt \u00fcber den gesamten Betriebsbereich hoch.<\/li>\n<\/ul>\n<p>Dieser Ansatz bietet:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>stufenlose Helligkeitsregelung,<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>geringe Verlustleistung,<\/li>\n<li>die richtige Stromregelung der LED-Hintergrundbeleuchtung,<\/li>\n<li>vollst\u00e4ndige Hardware-Unabh\u00e4ngigkeit vom GUI-Framework.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Hardware-_und_Softwareanforderungen\"><\/span>Hardware- und Softwareanforderungen<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img decoding=\"async\" class=\"alignnone wp-image-128927 size-full\" src=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_1-1.png\" alt=\"\" width=\"826\" height=\"480\" srcset=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_1-1.png 826w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_1-1-300x174.png 300w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_1-1-768x446.png 768w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_1-1-600x349.png 600w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_1-1-64x37.png 64w\" sizes=\"(max-width: 826px) 100vw, 826px\" \/><\/p>\n<p>Vergewissern Sie sich vor der Einstellung der Hintergrundbeleuchtung, dass:<\/p>\n<ul>\n<li>das Display richtig mit dem STM32-Modul verbunden ist,<\/li>\n<li>die Karte ist \u00fcber ST-Link mit einem PC verbunden,<\/li>\n<li>das Projekt mit einer unterst\u00fctzten Softwarevorlage (LVGL oder TouchGFX) erstellt wurde.<\/li>\n<\/ul>\n<p>F\u00fcr die Steuerung der Hintergrundbeleuchtung sind keine \u00c4nderungen an der GUI-Framework-Konfiguration erforderlich.<\/p>\n<p><strong>Timer f\u00fcr die Steuerung der Hintergrundbeleuchtung<\/strong><\/p>\n<p>Bei Riverdi STM32-Displaymodulen wird die Hintergrundbeleuchtung mit gesteuert:<\/p>\n<ul>\n<li><strong>TIM15<\/strong> (auf beiden Infrastrukturen U5 und H7)<\/li>\n<li>Hardware PWM-Ausgang<\/li>\n<li>Kanal 1<\/li>\n<\/ul>\n<p>Die PWM-Konfiguration finden Sie in der Projektdatei tim.c, innerhalb der Funktion <strong>MX_TIM15_Init().<\/strong><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Beispiel_fuer_eine_PWM-Konfiguration\"><\/span>Beispiel f\u00fcr eine PWM-Konfiguration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Der PWM-Kanal wird mit Hilfe der Standard STM32 HAL-Strukturen konfiguriert:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">sConfigOC.OCMode = TIM_OCMODE_PWM1;\n\nsConfigOC.Pulse = 998;\n\nsConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;\nsConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;\nsConfigOC.OCFastMode = TIM_OCFAST_DISABLE;\nsConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;\nsConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;\n\nif (HAL_TIM_PWM_ConfigChannel(&amp;htim15, &amp;sConfigOC, TIM_CHANNEL_1) !=\nHAL_OK)\n{\nError_Handler();\n}<\/pre>\n<p>Der wichtigste Parameter ist hier sConfigOC.Pulse.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Helligkeitsbereich_und_Bedeutung\"><\/span>Helligkeitsbereich und Bedeutung<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Die Helligkeit der Hintergrundbeleuchtung wird durch das PWM-Tastverh\u00e4ltnis gesteuert:<\/p>\n<ul>\n<li><strong>0<\/strong> \u2192 Hintergrundbeleuchtung AUS<\/li>\n<li> <strong> 998<\/strong> \u2192 maximale Helligkeit<\/li>\n<\/ul>\n<p>Jeder Wert zwischen 0 und 998 ergibt eine proportionale Helligkeitsstufe.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Einstellung_der_Laufzeithelligkeit\"><\/span>Einstellung der Laufzeithelligkeit<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Zus\u00e4tzlich zur statischen Konfiguration kann die Beleuchtungsst\u00e4rke auch w\u00e4hrend der Laufzeit ge\u00e4ndert werden, indem direkt in das Timer-Register geschrieben wird:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">TIM15-&gt;CCR1 = Ihr_neuer_Impulswert;<\/pre>\n<p>Dies erm\u00f6glicht:<\/p>\n<ul>\n<li>dynamische Helligkeitskontrolle,<\/li>\n<li>Dimmen mit Umgebungslicht,<\/li>\n<li>Energiesparmodi,<\/li>\n<li>weiche Ein- und Ausblendungseffekte.<\/li>\n<\/ul>\n<p>Eine Neuinitialisierung des Displays ist nicht erforderlich.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Bildschirmdrehung_auf_STM32-Displays\"><\/span>Bildschirmdrehung auf STM32-Displays<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Im Gegensatz zur Steuerung der Hintergrundbeleuchtung ist die <strong>Drehung des Bildschirms keine reine Hardware-Operation auf dem STM32.<\/strong><br \/>\nDie LCD TFT Display Controller (LTDC) Peripherie unterst\u00fctzt die Bilddrehung nicht, was bedeutet, dass die Drehung auf der <strong>  Grafik-Framework-Ebene.<\/strong><\/p>\n<p>Je nach dem gew\u00e4hlten GUI-Framework unterscheidet sich die Implementierung erheblich.<\/p>\n<p>Dieser Abschnitt erkl\u00e4rt beide Ans\u00e4tze, die bei Riverdi STM32-Displays verwendet werden:<\/p>\n<ul>\n<li><strong>LVGL-basierte Rotation<\/strong><\/li>\n<li><strong>TouchGFX-basierte Drehung<\/strong><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Bildschirmdrehung_mit_LVGL\"><\/span>Bildschirmdrehung mit LVGL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Wenn Sie Riverdi STM32 Displaymodule mit RGB-Panels verwenden, streamt die STM32 LTDC-Peripherie die Pixel zeilenweise aus dem Speicher. Da LTDC keine Hardware-Drehung unterst\u00fctzt, ist die einzige zuverl\u00e4ssige M\u00f6glichkeit, das Bild zu drehen, dies in der Software zu tun, bevor die Pixel den LTDC-Framebuffer erreichen. <\/p>\n<p>LVGL unterst\u00fctzt die Anzeigendrehung \u00fcber:<br \/>\nlv_display_set_rotation(disp, LV_DISPLAY_ROTATION_xxx);<br \/>\nwobei xxx 0, 90, 180 oder 270 sein kann.<\/p>\n<p>Dieser Aufruf aktualisiert jedoch das interne LVGL-Koordinatensystem und die Layout-Behandlung. Er dreht die Pixeldaten f\u00fcr LTDC-basierte RGB-Pipelines nicht automatisch. Aus diesem Grund muss die Pixeldrehung innerhalb des LVGL-Flush-Callbacks behandelt werden. <\/p>\n<p><strong>Wo die Rotation in die LVGL-Pipeline passt<\/strong><\/p>\n<p>In diesem Fall:<\/p>\n<ul>\n<li>LVGL rendert kleine &#8222;Kacheln&#8220; in einen Arbeitspuffer (px_map) unter Verwendung des<strong> PARTIAL-Rendermodus.<\/strong><\/li>\n<li>Der Flush-Callback (disp_flush) schreibt die gerenderten Kacheln in den LTDC-Rahmenpuffer.<\/li>\n<li>Wenn die Drehung aktiviert ist, dreht der Flush-Callback die Kachel, bevor er sie in den Framebuffer schreibt.<\/li>\n<li>Die Ber\u00fchrungskoordinaten bleiben konsistent, da LVGL die aktuelle Bildschirmdrehung kennt.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"LVGL-Initialisierung_PARTIAL_Rendering_Rotation\"><\/span>LVGL-Initialisierung (PARTIAL Rendering + Rotation)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Das Display wird in lvgl_port_display.c erstellt und konfiguriert:<\/p>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">void lvgl_display_init(void)\n{\ndisp = lv_display_create(MY_DISP_HOR_RES, MY_DISP_VER_RES);\n\n__attribute__((section(\".my_ram_d2_data\")))\nstatic uint8_t buf1[288 * 1024];\n\nlv_display_set_buffers(disp, (void *)buf1, NULL, sizeof(buf1),\nLV_DISPLAY_RENDER_MODE_PARTIAL);\n\n\/* Legen Sie die gew\u00fcnschte Drehung fest *\/\nlv_display_set_rotation(disp, LV_DISPLAY_ROTATION_90);\n\n\/* Registrieren Sie den Flush-Callback *\/\nlv_display_set_flush_cb(disp, disp_flush);\n}<\/pre>\n<p><img decoding=\"async\" class=\"alignnone wp-image-128933 size-full\" src=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_2-1.png\" alt=\"\" width=\"826\" height=\"248\" srcset=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_2-1.png 826w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_2-1-300x90.png 300w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_2-1-768x231.png 768w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_2-1-600x180.png 600w, https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_grafika_POMIEDZY-TEKSTY_2-1-64x19.png 64w\" sizes=\"(max-width: 826px) 100vw, 826px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Flush-Callback_Software-Rotation_in_LTDC-Framebuffer\"><\/span>Flush-Callback (Software-Rotation in LTDC-Framebuffer)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Nachfolgend finden Sie den Flush-Callback, der f\u00fcr Riverdi STM32-Displays mit LTDC verwendet wird.<br \/>\nEs unterst\u00fctzt die Drehung um:<\/p>\n<ol>\n<li>Transformieren des Zielbereichs \u00fcber lv_display_rotate_area(), und<\/li>\n<li>Drehen der Pixeldaten mittels lv_draw_sw_rotate() vor dem Schreiben in den<br \/>\nFramebuffer.<\/li>\n<\/ol>\n<pre style=\"white-space: break-spaces; padding: 15px; border: solid 1px; word-wrap: break-word; background-color: #f2f6ff;\">static void disp_flush(lv_display_t * display,\nconst lv_area_t * area,\n\nuint8_t * px_map)\n{\nlv_color_format_t cf = lv_display_get_color_format(display);\nuint32_t px_size = lv_color_format_get_size(cf); \/* RGB565 = 2 Bytes *\/\n\n\/* Berechnen Sie den Zielbereich nach der Drehung *\/\nlv_area_t rot_area = *area;\nlv_display_rotate_area(display, &amp;rot_area);\n\nint32_t src_w = lv_area_get_width(area);\nint32_t src_h = lv_area_get_height(area);\n\nuint32_t src_stride = lv_draw_buf_width_to_stride(src_w, cf);\nuint32_t fb_stride = lv_draw_buf_width_to_stride(MY_DISP_HOR_RES, cf);\n\n\/* LTDC-Rahmenpuffer-Adresse *\/\nuint8_t * fb = (uint8_t *)hltdc.LayerCfg[0].FBStartAdress;\nfb += (rot_area.y1 * fb_stride) + (rot_area.x1 * px_size);\n\n\/* Cache-Wartung (erforderlich, wenn sich der Framebuffer im externen SDRAM befindet) *\/\nSCB_CleanInvalidateDCache();\n\nlv_display_rotation_t r = lv_display_get_rotation(display);\n\nif(r == LV_DISPLAY_ROTATION_0) {\n\/* Schneller Pfad: keine Drehung *\/\nfor(int32_t y = 0; y &lt; src_h; y++) {\nlv_memcpy(fb, px_map, src_stride);\npx_map += src_stride;\n\nfb += fb_stride;\n}\n} sonst {\n\/* Drehen Sie die gerenderte Kachel direkt in den Framebuffer *\/\nlv_draw_sw_rotate(px_map, fb,\nsrc_w, src_h,\nsrc_stride, fb_stride,\nr, cf);\n}\n\n\/* LVGL benachrichtigen, dass die Sp\u00fclung abgeschlossen ist *\/\nlv_display_flush_ready(display);\n}<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Ergebnis\"><\/span>Ergebnis<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Mit diesem Ansatz:<\/p>\n<ul>\n<li>wird das Bild vor der LTDC-Ausgabe physisch gedreht,<\/li>\n<li>LVGL-Layout und Rendering bleiben konsistent,<\/li>\n<li>Die Ber\u00fchrungskoordinaten bleiben an der gedrehten Benutzeroberfl\u00e4che ausgerichtet,<\/li>\n<li>sind keine \u00c4nderungen an der LTDC-Zeitkonfiguration erforderlich.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Bildschirmdrehung_auf_STM32_mit_TouchGFX\"><\/span>Bildschirmdrehung auf STM32 mit TouchGFX<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Im Gegensatz zu LVGL,  <strong>TouchGFX verwaltet die Bildschirmdrehung auf der Ebene des Frameworks und der Konfiguration.<\/strong>  F\u00fcr die meisten STM32-basierten Riverdi-Display-Projekte kann die Rotation aktiviert werden  <strong>ohne \u00c4nderung der Low-Level-Anzeigetreiber oder des Codes f\u00fcr die Framebuffer-Verarbeitung.<\/strong><\/p>\n<p>Das macht TouchGFX besonders praktisch, wenn:<\/p>\n<ul>\n<li>die Ausrichtung des Displays ist zum Zeitpunkt des Entwurfs bekannt,<\/li>\n<li>Rotation muss nicht dynamisch zur Laufzeit ge\u00e4ndert werden,<\/li>\n<li>wird ein schneller und wartbarer konfigurationsbasierter Ansatz bevorzugt.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"TouchGFX_Rotationskonzept\"><\/span>TouchGFX Rotationskonzept<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>TouchGFX abstrahiert die Display-Pipeline und verwaltet sie:<\/p>\n<ul>\n<li>Framebuffer-Layout,<\/li>\n<li>Rendering-Ausrichtung,<\/li>\n<li>Koordinatentransformationen,<\/li>\n<li>Zuordnung der Touch-Eingabe.<\/li>\n<\/ul>\n<p>Das Ergebnis ist:<\/p>\n<ul>\n<li>ist keine manuelle Pixeldrehung im LTDC-Sp\u00fclpfad erforderlich,<\/li>\n<li>ist keine benutzerdefinierte Manipulation des Framebuffers erforderlich,<\/li>\n<li>Die Rotation wird konsistent auf das Rendering und die Touch-Eingabe angewendet.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Aktivieren_der_Bildschirmdrehung_im_TouchGFX-Designer\"><\/span>Aktivieren der Bildschirmdrehung im TouchGFX-Designer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Die Bildschirmdrehung wird direkt in TouchGFX Designer konfiguriert.<\/p>\n<p>Die genaue Benennung kann je nach TouchGFX-Version leicht variieren, aber der Arbeitsablauf auf<br \/>\nist einheitlich.<\/p>\n<p><strong>Schritt 1 &#8211; Display-Konfiguration \u00f6ffnen<\/strong><\/p>\n<p>In TouchGFX Designer:<\/p>\n<ol>\n<li>\u00d6ffnen Sie Ihr Projekt.<\/li>\n<li>Navigieren Sie zum Abschnitt <strong>Display \/ Karte \/ Anwendungskonfiguration<\/strong>.<\/li>\n<li>Suchen Sie die Einstellung <strong>Displayausrichtung<\/strong> oder <strong>Bildschirmdrehung<\/strong>.<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Zusammenfassung\"><\/span>Zusammenfassung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Auf den Riverdi STM32-Modulen wird die Helligkeit der Hintergrundbeleuchtung durch Hardware-PWM gesteuert, die von TIM15 erzeugt und von einem Konstantstrom-LED-Treiber geregelt wird. Das Tastverh\u00e4ltnis definiert die Helligkeit, unabh\u00e4ngig vom GUI-Framework, und erm\u00f6glicht so einen stabilen und vorhersehbaren Betrieb. <\/p>\n<p>Die Drehung des Bildschirms wird von der LTDC-Hardware nicht unterst\u00fctzt und muss in der Grafikschicht behandelt werden. In LVGL erfordert die Drehung eine Software-Pixeltransformation im Flush-Callback. In TouchGFX wird die Drehung auf Framework-Ebene konfiguriert, ohne dass Low-Level-Anzeigetreiber ge\u00e4ndert werden m\u00fcssen.  <\/p>\n<p>Die Trennung der Steuerung auf Hardwareebene von den Verantwortlichkeiten auf der Grafikebene gew\u00e4hrleistet eine saubere Architektur und ein zuverl\u00e4ssiges Verhalten in STM32-basierten Displaysystemen.<\/p>\n<p><iframe style=\"aspect-ratio: 16\/9;\" title=\"\" src=\"https:\/\/www.youtube.com\/embed\/VsqYn-6io9A\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Steuerung der Hintergrundbeleuchtung und die Drehung des Bildschirms sind zentrale Display-Operationen, die das Systemverhalten von STM32-basierten Designs direkt beeinflussen. Sie sind unabh\u00e4ngig von der Anwendungslogik, aber eng mit der Hardwarekonfiguration und den Funktionen des Grafik-Frameworks verbunden. In diesem Artikel erkl\u00e4ren wir, wie Riverdi STM32-Displaymodule die PWM-basierte Steuerung der Hintergrundbeleuchtung mit TIM15 und einem speziellen [&hellip;]<\/p>\n","protected":false},"author":3328,"featured_media":128923,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[1452],"tags":[],"class_list":["post-129757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anzeige-101"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32 - Riverdi<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32 - Riverdi\" \/>\n<meta property=\"og:description\" content=\"Die Steuerung der Hintergrundbeleuchtung und die Drehung des Bildschirms sind zentrale Display-Operationen, die das Systemverhalten von STM32-basierten Designs direkt beeinflussen. Sie sind unabh\u00e4ngig von der Anwendungslogik, aber eng mit der Hardwarekonfiguration und den Funktionen des Grafik-Frameworks verbunden. In diesem Artikel erkl\u00e4ren wir, wie Riverdi STM32-Displaymodule die PWM-basierte Steuerung der Hintergrundbeleuchtung mit TIM15 und einem speziellen [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32\" \/>\n<meta property=\"og:site_name\" content=\"Riverdi\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/riverdi.displays\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-16T13:00:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rafa\u0142 F\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@riverdidisplays\" \/>\n<meta name=\"twitter:site\" content=\"@riverdidisplays\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rafa\u0142 F\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32\"},\"author\":{\"name\":\"Rafa\u0142 F\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/de#\\\/schema\\\/person\\\/dac328f88dda36bae87261c19a2e30ef\"},\"headline\":\"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32\",\"datePublished\":\"2026-03-16T13:00:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32\"},\"wordCount\":1237,\"image\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg\",\"articleSection\":[\"Anzeige 101\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32\",\"url\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32\",\"name\":\"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32 - Riverdi\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg\",\"datePublished\":\"2026-03-16T13:00:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de#\\\/schema\\\/person\\\/dac328f88dda36bae87261c19a2e30ef\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage\",\"url\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg\",\"contentUrl\":\"https:\\\/\\\/riverdi.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg\",\"width\":1280,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/de\\\/blog\\\/a-guide-to-fundamental-display-operations-on-stm32#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Front Page\",\"item\":\"https:\\\/\\\/riverdi.com\\\/de\\\/titelblatt\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/de#website\",\"url\":\"https:\\\/\\\/riverdi.com\\\/de\",\"name\":\"Riverdi\",\"description\":\"Global TFT LCD Manufacturer\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/riverdi.com\\\/de?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/riverdi.com\\\/de#\\\/schema\\\/person\\\/dac328f88dda36bae87261c19a2e30ef\",\"name\":\"Rafa\u0142 F\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g\",\"caption\":\"Rafa\u0142 F\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32 - Riverdi","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32","og_locale":"de_DE","og_type":"article","og_title":"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32 - Riverdi","og_description":"Die Steuerung der Hintergrundbeleuchtung und die Drehung des Bildschirms sind zentrale Display-Operationen, die das Systemverhalten von STM32-basierten Designs direkt beeinflussen. Sie sind unabh\u00e4ngig von der Anwendungslogik, aber eng mit der Hardwarekonfiguration und den Funktionen des Grafik-Frameworks verbunden. In diesem Artikel erkl\u00e4ren wir, wie Riverdi STM32-Displaymodule die PWM-basierte Steuerung der Hintergrundbeleuchtung mit TIM15 und einem speziellen [&hellip;]","og_url":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32","og_site_name":"Riverdi","article_publisher":"https:\/\/www.facebook.com\/riverdi.displays\/","article_published_time":"2026-03-16T13:00:51+00:00","og_image":[{"width":1280,"height":600,"url":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg","type":"image\/jpeg"}],"author":"Rafa\u0142 F","twitter_card":"summary_large_image","twitter_creator":"@riverdidisplays","twitter_site":"@riverdidisplays","twitter_misc":{"Verfasst von":"Rafa\u0142 F","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32#article","isPartOf":{"@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32"},"author":{"name":"Rafa\u0142 F","@id":"https:\/\/riverdi.com\/de#\/schema\/person\/dac328f88dda36bae87261c19a2e30ef"},"headline":"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32","datePublished":"2026-03-16T13:00:51+00:00","mainEntityOfPage":{"@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32"},"wordCount":1237,"image":{"@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage"},"thumbnailUrl":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg","articleSection":["Anzeige 101"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32","url":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32","name":"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32 - Riverdi","isPartOf":{"@id":"https:\/\/riverdi.com\/de#website"},"primaryImageOfPage":{"@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage"},"image":{"@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage"},"thumbnailUrl":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg","datePublished":"2026-03-16T13:00:51+00:00","author":{"@id":"https:\/\/riverdi.com\/de#\/schema\/person\/dac328f88dda36bae87261c19a2e30ef"},"breadcrumb":{"@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32#primaryimage","url":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg","contentUrl":"https:\/\/riverdi.com\/wp-content\/uploads\/2026\/03\/BLOG_COVER_GUIDE_FUNDAMENTAL_GUIDE_STM32.jpg","width":1280,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/riverdi.com\/de\/blog\/a-guide-to-fundamental-display-operations-on-stm32#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Front Page","item":"https:\/\/riverdi.com\/de\/titelblatt"},{"@type":"ListItem","position":2,"name":"Ein Leitfaden f\u00fcr grundlegende Display-Operationen auf STM32"}]},{"@type":"WebSite","@id":"https:\/\/riverdi.com\/de#website","url":"https:\/\/riverdi.com\/de","name":"Riverdi","description":"Global TFT LCD Manufacturer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/riverdi.com\/de?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/riverdi.com\/de#\/schema\/person\/dac328f88dda36bae87261c19a2e30ef","name":"Rafa\u0142 F","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b208bcbc75c8894f7448c2283e1f99dd68d97018826b56edce8aeb3c8c3985ee?s=96&d=mm&r=g","caption":"Rafa\u0142 F"}}]}},"_links":{"self":[{"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/posts\/129757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/users\/3328"}],"replies":[{"embeddable":true,"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/comments?post=129757"}],"version-history":[{"count":0,"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/posts\/129757\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/media\/128923"}],"wp:attachment":[{"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/media?parent=129757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/categories?post=129757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/riverdi.com\/de\/wp-json\/wp\/v2\/tags?post=129757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}