{"id":15032,"date":"2023-07-24T10:28:32","date_gmt":"2023-07-24T04:58:32","guid":{"rendered":"https:\/\/fastbitlab.com\/?p=15032"},"modified":"2023-10-20T16:01:48","modified_gmt":"2023-10-20T10:31:48","slug":"stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/","title":{"rendered":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 44| Testing exercise 001 in portrait mode"},"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;\"><strong>Testing exercise 001 in portrait mode<\/strong><\/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 inset;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\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;\">In the main.c file, I have chosen a width of 239 instead of 320 for the portrait mode. Additionally, I have modified the height of each color bar accordingly.<\/span><\/p>\n<pre class=\"color-5-text-contrast color5-background-color\" style=\"font-size: 12px; box-shadow: #cecece 0px 0px 0px 0px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\"><span style=\"color: #993366;\"><span style=\"color: #ff99cc;\">void<\/span> <span style=\"color: #ffffff;\">SystemClock_Setup(void);<\/span>\r\n<span style=\"color: #ff99cc;\">void<\/span> <span style=\"color: #ffffff;\">LTDC_Pin_Init(void);<\/span>\r\n<span style=\"color: #ff99cc;\">void<\/span> <span style=\"color: #ffffff;\">LTDC_Init(void);<\/span>\r\n<span style=\"color: #ff99cc;\">void<\/span><span style=\"color: #ffffff;\"> LTDC_Layer_Init(<span style=\"color: #008000;\">LTDC_Layer_TypeDef<\/span> *pLayer);<\/span>\r\n<span style=\"color: #ff99cc;\">int<\/span><\/span> main(<span style=\"color: #ff99cc;\">void<\/span>)\r\n{\r\n&nbsp; &nbsp;SystemClock_Setup();\r\n&nbsp; &nbsp;BSP_LCD_Init();\r\n&nbsp; &nbsp;BSP_LCD_Set_Orientation(PORTRAIT);\r\n&nbsp; &nbsp;LTDC_Pin_Init();\r\n&nbsp; &nbsp;LTDC_Init();\r\n&nbsp; &nbsp;LTDC_Layer_Init(LTDC_Layer1);\r\n&nbsp; &nbsp;bsp_lcd_set_fb_background_color(BLACK);\r\n<span style=\"color: #ff99cc;\">#if<\/span>(BSP_LCD_ORIENTATION == LANDSCAPE)\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(VIOLET, 0, 320, 34*0, 34);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(INDIGO, 0, 320, 34*1, 34);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(BLUE, 0, 320, 34*2, 34);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(GREEN, 0, 320, 34*3, 34);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(YELLOW, 0, 320, 34*4, 34);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(ORANGE, 0, 320, 34*5, 34);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(RED, 0, 320, 34*6, 34);\r\n<span style=\"color: #ff99cc;\">#elif<\/span>(BSP_LCD_ORIENTATION == PORTRAIT)\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(VIOLET, 0, 239, 46*0, 46);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(INDIGO, 0, 239, 46*1, 46);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(BLUE, 0, 239, 46*2, 46);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(GREEN, 0, 239, 46*3, 46);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(YELLOW, 0, 239, 46*4, 46);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(ORANGE, 0, 239, 46*5, 46);\r\n&nbsp; &nbsp;bsp_lcd_fill_rect(RED, 0, 239, 46*6, 44);\r\n<span style=\"color: #ff99cc;\">#endif<\/span>\r\n<span style=\"color: #00ff00;\">\/* Loop forever *\/<\/span>\r\n<span style=\"color: #ff99cc;\">for(;;);<\/span>\r\n}&nbsp;&nbsp;<\/pre>\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;\">As a result, the output is displayed in portrait mode.<\/span><\/p>\n<figure id=\"attachment_15036\" aria-describedby=\"caption-attachment-15036\" style=\"width: 711px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-15036 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/07\/Figure-2-3.png\" alt=\"Figure 2. Output\" width=\"711\" height=\"283\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-2-3.png 1398w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-2-3-300x119.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-2-3-1024x407.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-2-3-768x305.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-2-3-600x239.png 600w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><figcaption id=\"caption-attachment-15036\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. 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;\">However, it is actually happening in Portrait-2, not Portrait-1.<\/span><\/p>\n<figure id=\"attachment_15037\" aria-describedby=\"caption-attachment-15037\" style=\"width: 703px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-15037\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/07\/Figure-3-3.png\" alt=\"portrait mode\" width=\"703\" height=\"395\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3.png 1849w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3-300x169.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3-1024x575.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3-768x432.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3-600x337.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3-1536x863.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3-800x450.png 800w\" sizes=\"(max-width: 703px) 100vw, 703px\" \/><figcaption id=\"caption-attachment-15037\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Direction of pixel display<\/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;\">If you want to achieve Portrait-1, you need to set MX to 1 and MY to 1. Let&#8217;s make those changes.<\/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=\"color: #000000;\"><span style=\"font-weight: 400;\">In the BSP_LCD_Set_Orientation function, when it is set to portrait mode, let&#8217;s add the MY and MX components as shown in Figure 3.<\/span><span style=\"font-weight: 400;\">&nbsp;<\/span><\/span><\/p>\n<figure id=\"attachment_15038\" aria-describedby=\"caption-attachment-15038\" style=\"width: 714px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-15038\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/07\/Figure-4-3.png\" alt=\"portrait mode\" width=\"714\" height=\"372\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-3.png 1103w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-3-300x156.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-3-1024x534.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-3-768x400.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-4-3-600x313.png 600w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><figcaption id=\"caption-attachment-15038\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. BSP_LCD_Set_Orientation<\/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;\">After retesting the program, we can observe that the display is reversed.<\/span><\/p>\n<figure id=\"attachment_15039\" aria-describedby=\"caption-attachment-15039\" style=\"width: 758px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15039\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2023\/07\/Figure-5-3.png\" alt=\"portrait mode\" width=\"758\" height=\"346\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-5-3.png 1302w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-5-3-300x137.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-5-3-1024x467.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-5-3-768x350.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-5-3-600x274.png 600w\" sizes=\"(max-width: 758px) 100vw, 758px\" \/><figcaption id=\"caption-attachment-15039\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 4. 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=\"color: #000000;\"><span style=\"font-weight: 400;\">If you need more information about the LCD&#8217;s commands, please refer to the <\/span><span style=\"color: #ff6600;\"><a style=\"color: #ff6600;\" href=\"https:\/\/cdn-shop.adafruit.com\/datasheets\/ILI9341.pdf\"><span style=\"font-weight: 400;\">datasheet<\/span><\/a><\/span><span style=\"font-weight: 400;\">. You can simply search for the desired command code in the datasheet.<\/span><\/span><\/p>\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=\"\"><strong><span style=\"color: #000080;\">Fastbit Embedded Brain Academy Courses<\/span><\/strong><\/p>\n<p class=\"\" style=\"font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px;\" 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; Testing exercise 001 in portrait mode &nbsp; In the main.c file, I have chosen a width of 239 instead of 320 for the portrait mode. Additionally, I have modified the height of each color bar accordingly. void SystemClock_Setup(void); void LTDC_Pin_Init(void); void LTDC_Init(void); void LTDC_Layer_Init(LTDC_Layer_TypeDef *pLayer); int main(void) { &nbsp; &nbsp;SystemClock_Setup(); &nbsp; &nbsp;BSP_LCD_Init(); &nbsp; &nbsp;BSP_LCD_Set_Orientation(PORTRAIT); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15037,"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-15032","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>Testing Portrait Mode and Display Orientation in LVGL Application<\/title>\n<meta name=\"description\" content=\"Explore the process of testing portrait mode and adjusting display orientation in an LVGL application. Learn how changes in the code affect\" \/>\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-lecture-44-testing-exercise-001-in-portrait-mode\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing Portrait Mode and Display Orientation in LVGL Application\" \/>\n<meta property=\"og:description\" content=\"Explore the process of testing portrait mode and adjusting display orientation in an LVGL application. Learn how changes in the code affect\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/\" \/>\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-24T04:58:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-20T10:31:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1849\" \/>\n\t<meta property=\"og:image:height\" content=\"1039\" \/>\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=\"2 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-lecture-44-testing-exercise-001-in-portrait-mode\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 44| Testing exercise 001 in portrait mode\",\"datePublished\":\"2023-07-24T04:58:32+00:00\",\"dateModified\":\"2023-10-20T10:31:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/\"},\"wordCount\":210,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-3-3.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/\",\"name\":\"Testing Portrait Mode and Display Orientation in LVGL Application\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-3-3.png\",\"datePublished\":\"2023-07-24T04:58:32+00:00\",\"dateModified\":\"2023-10-20T10:31:48+00:00\",\"description\":\"Explore the process of testing portrait mode and adjusting display orientation in an LVGL application. Learn how changes in the code affect\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-3-3.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Figure-3-3.png\",\"width\":1849,\"height\":1039,\"caption\":\"Figure 3. Direction of pixel display\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\\\/#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 44| Testing exercise 001 in portrait mode\"}]},{\"@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":"Testing Portrait Mode and Display Orientation in LVGL Application","description":"Explore the process of testing portrait mode and adjusting display orientation in an LVGL application. Learn how changes in the code affect","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-lecture-44-testing-exercise-001-in-portrait-mode\/","og_locale":"en_US","og_type":"article","og_title":"Testing Portrait Mode and Display Orientation in LVGL Application","og_description":"Explore the process of testing portrait mode and adjusting display orientation in an LVGL application. Learn how changes in the code affect","og_url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2023-07-24T04:58:32+00:00","article_modified_time":"2023-10-20T10:31:48+00:00","og_image":[{"width":1849,"height":1039,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3.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":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 44| Testing exercise 001 in portrait mode","datePublished":"2023-07-24T04:58:32+00:00","dateModified":"2023-10-20T10:31:48+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/"},"wordCount":210,"commentCount":0,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/","url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/","name":"Testing Portrait Mode and Display Orientation in LVGL Application","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3.png","datePublished":"2023-07-24T04:58:32+00:00","dateModified":"2023-10-20T10:31:48+00:00","description":"Explore the process of testing portrait mode and adjusting display orientation in an LVGL application. Learn how changes in the code affect","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2023\/07\/Figure-3-3.png","width":1849,"height":1039,"caption":"Figure 3. Direction of pixel display"},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvglmcu3-lecture-44-testing-exercise-001-in-portrait-mode\/#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 44| Testing exercise 001 in portrait mode"}]},{"@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\/15032","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=15032"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15032\/revisions"}],"predecessor-version":[{"id":16170,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/15032\/revisions\/16170"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/15037"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=15032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=15032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=15032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}