{"id":15067,"date":"2023-07-27T10:49:42","date_gmt":"2023-07-27T05:19:42","guid":{"rendered":"https:\/\/fastbitlab.com\/?p=15067"},"modified":"2023-08-18T09:55:31","modified_gmt":"2023-08-18T04:25:31","slug":"stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/","title":{"rendered":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 46| Windowing in the case of STM32F407X+external LCD"},"content":{"rendered":"<div class=\"boldgrid-section color4-background-color color-4-text-contrast bg-background-color\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-lg-1 col-md-12 col-sm-12 col-xs-12\"><\/div>\n<div class=\"col-lg-10 col-md-12 col-xs-12 col-sm-12\">\n<p class=\"\">&nbsp;<\/p>\n<h1 class=\"\" style=\"text-align: center; font-family: 'Roboto Slab'; font-weight: 400; font-size: 35px; line-height: 50px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><b>Windowing in the case of STM32F407X+external LCD<\/b><\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<div>\n<div class=\"bg-hr bg-hr-16 color2-color\" style=\"border-style: solid; border-width: 0px 0px 2px; box-shadow: #cecece 0px 0px 0px 0px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #ff0000;\"><strong>How to adjust the window size for an external LCD?&nbsp;<\/strong><\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">If you want to adjust the window size for an external LCD, specifically an ILI9341-based LCD, you can utilize the &#8220;set_display_area&#8221; command by adjusting the horizontal and vertical coordinates.&nbsp;<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Now you draw a picture as shown in Figure 1. First, we will paint the display with a Yellow color, then set the display area to X1, X2, Y1, and Y2 coordinates and then send the data or pixel data of red and it will be written into the area which is set by you.<\/span><\/p>\n<figure id=\"attachment_15070\" aria-describedby=\"caption-attachment-15070\" style=\"width: 730px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-15070 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/07\/Figure-1-5.png\" alt=\"Figure 1. STM32F407x+external LCD\" width=\"730\" height=\"383\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5.png 1492w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5-300x157.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5-1024x537.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5-768x403.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5-600x314.png 600w\" sizes=\"(max-width: 730px) 100vw, 730px\" \/><figcaption id=\"caption-attachment-15070\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. STM32F407x+external LCD<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Let&#8217;s try this. Here, let&#8217;s call this first with the YELLOW and then let&#8217;s use another BSP function called <strong>bsp_lcd_set_display_area<\/strong>, and we have to provide x1, x2, y1, y2, these things. 60, 259, and 100, 139.<\/span><\/p>\n<pre class=\"color-5-text-contrast color5-background-color\" style=\"font-size: 12px; box-shadow: #cecece 0px 0px 0px 0px;\"><span style=\"color: #993366;\">void<\/span> SystemClock_Setup(<span style=\"color: #993366;\">void<\/span>);\r\n\r\n\r\n<span style=\"color: #993366;\">int<\/span> main(<span style=\"color: #993366;\">void<\/span>)\r\n{\r\n\r\nSystemClock_Setup();\r\nbsp_lcd_init();\r\nbsp_lcd_set_background_color(YELLOW);\r\n<span style=\"color: #ffff00;\">bsp_lcd_set_display_area(60, 259, 100,139);<\/span>\r\nbsp_lcd_send_cmd_mem_write();\r\nuint16_t data[200UL * 40UL];\r\n<span style=\"color: #993366;\">for<\/span>(uint32_t i = 0 ; i &lt; (200UL * 40UL) ; i++){\r\n    data[i] = bsp_lcd_convert_rgb888_to_rgb565(RED);\r\n}\r\nbsp_lcd_write((<span style=\"color: #008000;\">uint8_t<\/span>*)data, (200UL * 40UL * 2UL));\r\n\r\n<span style=\"color: #00ff00;\">\/*loop forever*\/<\/span>\r\n<span style=\"color: #993366;\">for(;;);<\/span>\r\n}<\/pre>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Look at the code. Here, the windowing is achieved by calling the <span style=\"color: #993366;\"><strong>bsp_lcd_set_display_area()<\/strong> <\/span>function, which sets up the specific area on the LCD display where the subsequent data will be written using bsp_lcd_write(). The content of the data array is filled with the RGB565 representation of the color red, and it is sent to the LCD to be displayed within the defined window.<\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>SystemClock_Setup();<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> This function is responsible for setting up the system clock for the microcontroller. It ensures that the microcontroller is running at the desired frequency.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>bsp_lcd_init();<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> This function initializes the LCD display connected to the microcontroller. It performs the necessary configurations to establish communication and prepare the display for use.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>bsp_lcd_set_background_color(YELLOW);<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> This function sets the background color of the LCD display to yellow.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>bsp_lcd_set_display_area(60, 259, 100, 139);<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> This function sets the display area or window on the LCD. The parameters <\/span><span style=\"font-weight: 400;\">(60, 259)<\/span><span style=\"font-weight: 400;\"> represent the Width of the window (X1 and X2), and <\/span><span style=\"font-weight: 400;\">(100, 139)<\/span><span style=\"font-weight: 400;\"> represent the height of the window(Y1, Y2), respectively.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>bsp_lcd_send_cmd_mem_write();<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> This function sends a command to the LCD to indicate that subsequent data writes will be directed to the display memory.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #800080;\"><span style=\"color: #993366;\"><b>uint16_t data[200UL * 40UL];<\/b><\/span><b>:<\/b><\/span><span style=\"font-weight: 400;\"> This line declares an array named <\/span><span style=\"font-weight: 400;\">data<\/span><span style=\"font-weight: 400;\"> to hold the pixel data that will be sent to the LCD. The size of the array is <\/span><span style=\"font-weight: 400;\">200UL * 40UL<\/span><span style=\"font-weight: 400;\">, which is 200 pixels wide and 40 pixels high.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>for(uint32_t i=0; i&lt; (200UL * 40UL) ; i++)<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> This is a loop that iterates over the <\/span><span style=\"font-weight: 400;\">data<\/span><span style=\"font-weight: 400;\"> array.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>data[i] = bsp_lcd_convert_rgb888_to_rgb565(RED);<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> Inside the loop, each element of the <\/span><span style=\"font-weight: 400;\">data<\/span><span style=\"font-weight: 400;\"> array is filled with the RGB565 color representation of the color red. The <\/span><span style=\"font-weight: 400;\">bsp_lcd_convert_rgb888_to_rgb565<\/span><span style=\"font-weight: 400;\"> function converts the 24-bit RGB888 color format to the 16-bit RGB565 format expected by the LCD.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #993366;\"><b>bsp_lcd_write((uint8_t*)data, (200UL * 40UL * 2UL));<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #993366;\">:<\/span> This line sends the <\/span><span style=\"font-weight: 400;\">data<\/span><span style=\"font-weight: 400;\"> array to the LCD display. The <\/span><span style=\"font-weight: 400;\">(uint8_t*)data<\/span><span style=\"font-weight: 400;\"> is a typecast to treat the array as an array of 8-bit values (bytes). The second parameter <\/span><span style=\"font-weight: 400;\">200UL * 40UL * 2UL<\/span><span style=\"font-weight: 400;\"> represents the total number of bytes to be written, which is calculated by multiplying the width, height, and the number of bytes per pixel (2 bytes for RGB565).<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 40px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"color: #800080;\"><b>for(;;);<\/b><\/span><span style=\"font-weight: 400;\"><span style=\"color: #800080;\">:<\/span> This line creates an infinite loop, keeping the microcontroller continuously running and displaying the same content on the LCD.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Once you have finished, test this code. Now let&#8217;s step over. You will notice that it is painted yellow, as shown in Figure 2.<\/span><\/p>\n<figure id=\"attachment_15072\" aria-describedby=\"caption-attachment-15072\" style=\"width: 715px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-15072 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/07\/Figure-3-5.png\" alt=\"Figure 3. Output\" width=\"715\" height=\"330\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-5.png 1907w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-5-300x139.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-5-1024x473.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-5-768x355.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-5-600x277.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-5-1536x710.png 1536w\" sizes=\"(max-width: 715px) 100vw, 715px\" \/><figcaption id=\"caption-attachment-15072\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Output<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Now execute this, and here you can see that the data you sent is written onto the display area defined by the <strong>bsp_lcd_set_display_area()<\/strong> function.<\/span><\/p>\n<figure id=\"attachment_15073\" aria-describedby=\"caption-attachment-15073\" style=\"width: 706px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-15073 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/07\/Figure-4-5.png\" alt=\"Figure 4. Output\" width=\"706\" height=\"350\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-5.png 1787w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-5-300x149.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-5-1024x507.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-5-768x380.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-5-600x297.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-5-1536x761.png 1536w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><figcaption id=\"caption-attachment-15073\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. Output<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 20px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><strong>FastBit Embedded Brain Academy Courses<\/strong><\/span><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/fastbitlab.com\/course1\">https:\/\/fastbitlab.com\/course1<\/a><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<\/div>\n<div class=\"col-lg-1 col-md-12 col-sm-12 col-xs-12\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Windowing in the case of STM32F407X+external LCD &nbsp; How to adjust the window size for an external LCD?&nbsp; If you want to adjust the window size for an external LCD, specifically an ILI9341-based LCD, you can utilize the &#8220;set_display_area&#8221; command by adjusting the horizontal and vertical coordinates.&nbsp; Now you draw a picture as shown [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15070,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[],"class_list":["post-15067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Adjusting Window Size for External LCD in STM32F407x<\/title>\n<meta name=\"description\" content=\"Adjusting Window Size for External LCD in STM32F407x. Follow step-by-step instructions to set the display area, send pixel data, and achieve\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adjusting Window Size for External LCD in STM32F407x\" \/>\n<meta property=\"og:description\" content=\"Adjusting Window Size for External LCD in STM32F407x. Follow step-by-step instructions to set the display area, send pixel data, and achieve\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/\" \/>\n<meta property=\"og:site_name\" content=\"FastBit EBA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fastbiteba\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T05:19:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-18T04:25:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1492\" \/>\n\t<meta property=\"og:image:height\" content=\"782\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"FastBitLab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:site\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"FastBitLab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 46| Windowing in the case of STM32F407X+external LCD\",\"datePublished\":\"2023-07-27T05:19:42+00:00\",\"dateModified\":\"2023-08-18T04:25:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/\"},\"wordCount\":666,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-1-5.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/\",\"name\":\"Adjusting Window Size for External LCD in STM32F407x\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-1-5.png\",\"datePublished\":\"2023-07-27T05:19:42+00:00\",\"dateModified\":\"2023-08-18T04:25:31+00:00\",\"description\":\"Adjusting Window Size for External LCD in STM32F407x. Follow step-by-step instructions to set the display area, send pixel data, and achieve\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-1-5.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-1-5.png\",\"width\":1492,\"height\":782,\"caption\":\"Figure 1. STM32F407x+external LCD\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 46| Windowing in the case of STM32F407X+external LCD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"name\":\"FastBit EBA\",\"description\":\"Your Online Academy of Embedded Systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\",\"name\":\"FastBit EBA\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"width\":640,\"height\":640,\"caption\":\"FastBit EBA\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fastbiteba\\\/\",\"https:\\\/\\\/x.com\\\/fastbiteba\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fastbit-embedded-brain-academy-b3167b124\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCa1REBV9hyrzGp2mjJCagBg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\",\"name\":\"FastBitLab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"caption\":\"FastBitLab\"},\"description\":\"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Adjusting Window Size for External LCD in STM32F407x","description":"Adjusting Window Size for External LCD in STM32F407x. Follow step-by-step instructions to set the display area, send pixel data, and achieve","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:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/","og_locale":"en_US","og_type":"article","og_title":"Adjusting Window Size for External LCD in STM32F407x","og_description":"Adjusting Window Size for External LCD in STM32F407x. Follow step-by-step instructions to set the display area, send pixel data, and achieve","og_url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2023-07-27T05:19:42+00:00","article_modified_time":"2023-08-18T04:25:31+00:00","og_image":[{"width":1492,"height":782,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5.png","type":"image\/png"}],"author":"FastBitLab","twitter_card":"summary_large_image","twitter_creator":"@fastbiteba","twitter_site":"@fastbiteba","twitter_misc":{"Written by":"FastBitLab","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 46| Windowing in the case of STM32F407X+external LCD","datePublished":"2023-07-27T05:19:42+00:00","dateModified":"2023-08-18T04:25:31+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/"},"wordCount":666,"commentCount":0,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/","url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/","name":"Adjusting Window Size for External LCD in STM32F407x","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5.png","datePublished":"2023-07-27T05:19:42+00:00","dateModified":"2023-08-18T04:25:31+00:00","description":"Adjusting Window Size for External LCD in STM32F407x. Follow step-by-step instructions to set the display area, send pixel data, and achieve","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-1-5.png","width":1492,"height":782,"caption":"Figure 1. STM32F407x+external LCD"},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-adjusting-window-size-for-external-lcd-in-stm32f407x\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 46| Windowing in the case of STM32F407X+external LCD"}]},{"@type":"WebSite","@id":"https:\/\/fastbitlab.com\/blog\/#website","url":"https:\/\/fastbitlab.com\/blog\/","name":"FastBit EBA","description":"Your Online Academy of Embedded Systems","publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fastbitlab.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fastbitlab.com\/blog\/#organization","name":"FastBit EBA","url":"https:\/\/fastbitlab.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","width":640,"height":640,"caption":"FastBit EBA"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fastbiteba\/","https:\/\/x.com\/fastbiteba","https:\/\/www.linkedin.com\/in\/fastbit-embedded-brain-academy-b3167b124\/","https:\/\/www.youtube.com\/channel\/UCa1REBV9hyrzGp2mjJCagBg"]},{"@type":"Person","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d","name":"FastBitLab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","caption":"FastBitLab"},"description":"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries."}]}},"_links":{"self":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/comments?post=15067"}],"version-history":[{"count":4,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15067\/revisions"}],"predecessor-version":[{"id":15212,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15067\/revisions\/15212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/15070"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=15067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=15067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=15067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}