{"id":16454,"date":"2024-09-28T10:22:28","date_gmt":"2024-09-28T04:52:28","guid":{"rendered":"https:\/\/fastbitlab.com\/?p=16454"},"modified":"2024-09-28T10:22:28","modified_gmt":"2024-09-28T04:52:28","slug":"stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/","title":{"rendered":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 65| Testing RGB mixer application on STM32F746 and STM32F407 DISC board"},"content":{"rendered":"<div class=\"boldgrid-section\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-lg-1 col-md-12 col-sm-12 col-xs-12\">\n<p class=\"\">&nbsp;<\/p>\n<\/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=\"font-size: 35px; line-height: 47px; text-align: left;\"><span style=\"color: #000080;\"><b>Testing RGB mixer application on STM32F746 and STM32F407 DISC board<\/b><\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\" style=\"padding: 0px; margin-top: -25px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<div>\n<p>&nbsp;<\/p>\n<div class=\"bg-hr bg-hr-16\" style=\"border-style: solid; border-width: 0px 0px 2px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Open Sans'; font-weight: 400;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">Testing RGB mixer application on STM32F746 and STM32F407 DISC board demonstrates how the software functions across two different STM32 boards.<\/span><\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px; font-family: 'Open Sans'; font-weight: 400;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">Figure 1 shows the output on the STM32F746 board, where the original application, designed for a 320&#215;240 resolution, is displayed on a higher resolution screen of 480&#215;272, resulting in notable empty spaces around the user interface.<\/span><\/p>\n<figure id=\"attachment_16458\" aria-describedby=\"caption-attachment-16458\" style=\"width: 711px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-16458 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-1-1024x504.png\" alt=\"Figure 1. Output\" width=\"711\" height=\"350\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-1-1024x504.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-1-300x148.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-1-768x378.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-1-1536x756.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-1.png 1811w\" sizes=\"(max-width: 711px) 100vw, 711px\" \/><figcaption id=\"caption-attachment-16458\" 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: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">These empty spaces are a consequence of hardcoding values within the &#8216;rgb_mixer.c&#8217; file, as seen below:<\/span><\/p>\n<figure id=\"attachment_16459\" aria-describedby=\"caption-attachment-16459\" style=\"width: 693px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-16459 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-2-1024x443.png\" alt=\"Figure 2. Code\" width=\"693\" height=\"300\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-2-1024x443.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-2-300x130.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-2-768x332.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-2-1536x664.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-2.png 1663w\" sizes=\"(max-width: 693px) 100vw, 693px\" \/><figcaption id=\"caption-attachment-16459\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Code<\/span><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<pre class=\"color-5-text-contrast color5-background-color\"><span style=\"font-weight: 400;\">&nbsp;<\/span><span style=\"font-weight: 400;\">&nbsp;<span style=\"color: #339966;\">\/* Create a base object to use it as rectangle *\/<\/span><\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;rect = lv_obj_create(lv_scr_act());<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_size(rect, 300, 80);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_align_to(rect, slider_b, LV_ALIGN_TOP_MID, 0, 30);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_border_color(rect, lv_color_black(), LV_PART_MAIN);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_border_width(rect, 5, LV_PART_MAIN);<\/span><\/pre>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">For instance, in the code above, we defined a rectangle with a width of 300. This value was chosen because our display&#8217;s width was approximately 320 pixels. However, hardcoding such absolute values can lead to compatibility issues when used on displays with different resolutions.<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">To address this concern, we recommend specifying dimensions using relative values or percentages. The LVGL library provides a macro for this purpose, &#8216;<\/span><b>lv_pct<\/b><span style=\"font-weight: 400;\">,&#8217; which allows you to express sizes as percentages.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">The <\/span><b>lv_pct<\/b><span style=\"font-weight: 400;\"> macro in LVGL&nbsp; allows you to specify sizes or positions as percentages relative to the parent container&#8217;s dimensions. It&#8217;s a convenient way to create responsive and adaptable user interfaces, ensuring that elements scale proportionally on screens with varying resolutions or sizes. By using <\/span><b>lv_pct<\/b><span style=\"font-weight: 400;\">, you make your UI elements more flexible and adaptable to different display environments.<\/span><\/span><\/p>\n<figure id=\"attachment_16460\" aria-describedby=\"caption-attachment-16460\" style=\"width: 703px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-16460 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-3.png\" alt=\"Figure 3. Lv_pct macro\" width=\"703\" height=\"276\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-3.png 1635w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-3-300x118.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-3-1024x401.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-3-768x301.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-3-1536x602.png 1536w\" sizes=\"(max-width: 703px) 100vw, 703px\" \/><figcaption id=\"caption-attachment-16460\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. Lv_pct macro<\/span><\/figcaption><\/figure>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">In the context of Figure 3, when you set the width for a button using <\/span><span style=\"font-weight: 400;\">lv_pct(50)<\/span><span style=\"font-weight: 400;\">, it signifies that the button&#8217;s width will be 50% of its parent container&#8217;s width. Utilizing the <\/span><span style=\"font-weight: 400;\">lv_pct<\/span><span style=\"font-weight: 400;\"> macro in our application ensures that we create user interface elements with dimensions relative to their parent containers, enhancing adaptability and responsiveness across different screen sizes and layouts.<\/span><span style=\"font-weight: 400;\">&nbsp;<\/span><\/span><\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">In the following code, we address the issue of hardcoding values for our UI elements. For instance, when configuring the width of a rectangle, we initially set it to 300 pixels based on a display width of 320 pixels. To make our code more adaptable, we aim to express these values as percentages using the <\/span><span style=\"font-weight: 400;\">LV_PCT<\/span><span style=\"font-weight: 400;\"> macro.<\/span><\/span><\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">For the rectangle&#8217;s width, we desire it to be 93% of the display&#8217;s width, which can be achieved by writing <\/span><span style=\"font-weight: 400;\">LV_PCT(93)<\/span><span style=\"font-weight: 400;\">. Similarly, we set the rectangle&#8217;s height to 33% of the display&#8217;s height with <\/span><span style=\"font-weight: 400;\">LV_PCT(33)<\/span><span style=\"font-weight: 400;\">.<\/span><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_16461\" aria-describedby=\"caption-attachment-16461\" style=\"width: 736px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16461 \" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-4-1024x461.png\" alt=\"Figure 4. Modify the Code\" width=\"736\" height=\"331\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-4-1024x461.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-4-300x135.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-4-768x346.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-4-1536x692.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-4.png 1663w\" sizes=\"(max-width: 736px) 100vw, 736px\" \/><figcaption id=\"caption-attachment-16461\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 4. Modify the Code<\/span><\/figcaption><\/figure>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">We also use <\/span><span style=\"font-weight: 400;\">LV_PCT<\/span><span style=\"font-weight: 400;\"> for slider widths, making them 80% of the screen&#8217;s width. Note that <\/span><span style=\"font-weight: 400;\">LV_PCT<\/span><span style=\"font-weight: 400;\"> doesn&#8217;t work for all situations, such as the <\/span><span style=\"font-weight: 400;\">lv_obj_align_to<\/span><span style=\"font-weight: 400;\"> method, where we use specific offsets.<\/span><\/span><\/p>\n<pre class=\"color-5-text-contrast color5-background-color\"><b>lv_obj_set_width(slider_r, LV_PCT(80));<\/b>\r\n\r\n<b>lv_obj_set_width(slider_g, LV_PCT(80));<\/b>\r\n\r\n<b>lv_obj_set_width(slider_b, LV_PCT(80));<\/b><\/pre>\n<p class=\"\">&nbsp;<\/p>\n<pre class=\"color-5-text-contrast color5-background-color\"><span style=\"font-weight: 400;\">&nbsp;<span style=\"color: #008080;\">&nbsp;<span style=\"color: #008000;\">\/*Align sliders*\/<\/span><\/span><\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;<\/span><b>&nbsp;&nbsp;lv_obj_align(slider_r,LV_ALIGN_TOP_MID,0, LV_PCT(17);<\/b>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_align_to(slider_g, slider_r, LV_ALIGN_TOP_MID,0,40);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_align_to(slider_b, slider_g, LV_ALIGN_TOP_MID, 0, 40);<\/span>\r\n\r\n\r\n\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;<span style=\"color: #008000;\">\/* Create a base object to use it as rectangle *\/<\/span><\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;rect = lv_obj_create(lv_scr_act());<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;<\/span><b>&nbsp;lv_obj_set_size(rect, LV_PCT(93), LV_PCT(33));<\/b>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_align_to(rect, slider_b, LV_ALIGN_TOP_MID, 0, 30);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_border_color(rect, lv_color_black(), LV_PART_MAIN);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_border_width(rect, 5, LV_PART_MAIN);<\/span>\r\n\r\n\r\n\r\n\r\n<span style=\"font-weight: 400; color: #008000;\">&nbsp;\/*Setting background color to the various parts of the slider*\/<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_bg_color(slider_r,lv_palette_main(LV_PALETTE_RED),LV_PART_INDICATOR);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_bg_color(slider_r, lv_palette_main(LV_PALETTE_RED), LV_PART_KNOB);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_bg_color(slider_g, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_bg_color(slider_g, lv_palette_main(LV_PALETTE_GREEN), LV_PART_KNOB);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_bg_color(slider_b, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR);<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_set_style_bg_color(slider_b, lv_palette_main(LV_PALETTE_BLUE), LV_PART_KNOB);<\/span>\r\n\r\n\r\n\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_obj_t* heading = lv_label_create(lv_scr_act());<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;&nbsp;&nbsp;lv_label_set_text(heading,\"RGB Mixer\");<\/span>\r\n\r\n<span style=\"font-weight: 400;\">&nbsp;&nbsp;<\/span><b>&nbsp;&nbsp;lv_obj_align(heading,LV_ALIGN_TOP_MID,0,LV_PCT(5));<\/b><\/pre>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Now, with these changes in place, I&#8217;ll proceed to relaunch the application.<\/span><\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Upon relaunch, we observe the output as depicted in Figure 5.<\/span><\/p>\n<figure id=\"attachment_16462\" aria-describedby=\"caption-attachment-16462\" style=\"width: 699px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16462\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-5-1024x401.png\" alt=\" Output_RGB mixer application\" width=\"699\" height=\"273\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-5-1024x401.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-5-300x117.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-5-768x301.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-5-1536x601.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-5.png 1903w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><figcaption id=\"caption-attachment-16462\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 5. Output<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Next, we&#8217;ll put the touch functionality to the test, and it works seamlessly. As you can see, the slider&#8217;s width adapts to 80% of the screen width, ensuring a responsive design, as showcased in Figure 6.<\/span><\/p>\n<figure id=\"attachment_16463\" aria-describedby=\"caption-attachment-16463\" style=\"width: 773px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16463\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-6-1024x411.png\" alt=\"Touch functionality Test_RGB mixer application\" width=\"773\" height=\"310\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-6-1024x411.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-6-300x120.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-6-768x308.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-6-1536x616.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-6.png 1913w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><figcaption id=\"caption-attachment-16463\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 6. Touch functionality Test<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Now, let&#8217;s put the same code to the test on a third hardware combination &#8211; the STM32F407 DISCOVERY board with an SPI-based LCD module, using an external display.<\/span><\/p>\n<figure id=\"attachment_16464\" aria-describedby=\"caption-attachment-16464\" style=\"width: 699px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16464\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-7-1024x459.png\" alt=\"STM32F407DISCOVERY + SPI based LCD module_RGB mixer application\" width=\"699\" height=\"313\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7-1024x459.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7-300x135.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7-768x345.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7-1536x689.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7.png 1897w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><figcaption id=\"caption-attachment-16464\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 7. STM32F407DISCOVERY + SPI based LCD module<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Testing the identical code that ran successfully on the STM32F746 board, we see that the UI seamlessly occupies the screen, and touch functionality remains fully functional. This output is shown in Figure 8.<\/span><\/p>\n<figure id=\"attachment_16465\" aria-describedby=\"caption-attachment-16465\" style=\"width: 789px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16465\" src=\"https:\/\/fastbitlab.com\/wp-content\/uploads\/2024\/05\/Figure-8-1024x418.png\" alt=\"STM32F407DISCOVERY+ SPI based LCD module Output_RGB mixer application\" width=\"789\" height=\"322\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-8-1024x418.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-8-300x122.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-8-768x314.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-8-1536x627.png 1536w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-8.png 1903w\" sizes=\"(max-width: 789px) 100vw, 789px\" \/><figcaption id=\"caption-attachment-16465\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 8. STM32F407DISCOVERY+ SPI based LCD module Output<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-family: 'Open Sans'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400;\">This demonstration underscores the versatility of LVGL across three different hardware platforms.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #c24008;\"><strong>To Get the Full Course on Mastering Microcontroller: STM32 LTDC, LCD-TFT, LVGL(MCU3)&nbsp;<span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/www.udemy.com\/course\/mastering-microcontroller-stm32-ltdc-lcd-tft-lvgl\/\" target=\"_blank\" rel=\"noopener\">Here<\/a><\/span><\/strong><\/span><\/p>\n<h3 class=\"\" style=\"font-size: 19px; line-height: 30px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #06277a;\"><strong>FASTBIT BRAIN ACADEMY ALL COURSES&nbsp;<\/strong><\/span><\/h3>\n<p class=\"\" style=\"font-size: 17px; line-height: 26px;\" data-font-family=\"Open Sans\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #0000ff;\">&nbsp;<a style=\"color: #0000ff;\" href=\"https:\/\/fastbitlab.com\/course1\/\" target=\"_blank\" rel=\"noopener\">https:\/\/fastbitlab.com\/course1\/<\/a><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; &nbsp; Testing RGB mixer application on STM32F746 and STM32F407 DISC board &nbsp; &nbsp; Testing RGB mixer application on STM32F746 and STM32F407 DISC board demonstrates how the software functions across two different STM32 boards. Figure 1 shows the output on the STM32F746 board, where the original application, designed for a 320&#215;240 resolution, is displayed on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":16464,"comment_status":"closed","ping_status":"closed","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":"on","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[],"class_list":["post-16454","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 RGB Mixer Application on STM32F746 and STM32F407 DISC Board: LVGL UI Optimization and Touch Functionality<\/title>\n<meta name=\"description\" content=\"Explore how the RGB mixer application runs on STM32F746 and STM32F407 DISC boards with LVGL UI optimization. Learn to enhance resolution compatibility, implement responsive design using LV_PCT macros, and test touch functionality on multiple hardware platforms.\" \/>\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-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing RGB Mixer Application on STM32F746 and STM32F407 DISC Board: LVGL UI Optimization and Touch Functionality\" \/>\n<meta property=\"og:description\" content=\"Explore how the RGB mixer application runs on STM32F746 and STM32F407 DISC boards with LVGL UI optimization. Learn to enhance resolution compatibility, implement responsive design using LV_PCT macros, and test touch functionality on multiple hardware platforms.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/\" \/>\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=\"2024-09-28T04:52:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1897\" \/>\n\t<meta property=\"og:image:height\" content=\"851\" \/>\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=\"5 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-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 65| Testing RGB mixer application on STM32F746 and STM32F407 DISC board\",\"datePublished\":\"2024-09-28T04:52:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/\"},\"wordCount\":709,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/Figure-7.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/\",\"name\":\"Testing RGB Mixer Application on STM32F746 and STM32F407 DISC Board: LVGL UI Optimization and Touch Functionality\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/Figure-7.png\",\"datePublished\":\"2024-09-28T04:52:28+00:00\",\"description\":\"Explore how the RGB mixer application runs on STM32F746 and STM32F407 DISC boards with LVGL UI optimization. Learn to enhance resolution compatibility, implement responsive design using LV_PCT macros, and test touch functionality on multiple hardware platforms.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/Figure-7.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/Figure-7.png\",\"width\":1897,\"height\":851,\"caption\":\"Figure 7. STM32F407DISCOVERY + SPI based LCD module\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\\\/#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 65| Testing RGB mixer application on STM32F746 and STM32F407 DISC board\"}]},{\"@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 RGB Mixer Application on STM32F746 and STM32F407 DISC Board: LVGL UI Optimization and Touch Functionality","description":"Explore how the RGB mixer application runs on STM32F746 and STM32F407 DISC boards with LVGL UI optimization. Learn to enhance resolution compatibility, implement responsive design using LV_PCT macros, and test touch functionality on multiple hardware platforms.","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-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/","og_locale":"en_US","og_type":"article","og_title":"Testing RGB Mixer Application on STM32F746 and STM32F407 DISC Board: LVGL UI Optimization and Touch Functionality","og_description":"Explore how the RGB mixer application runs on STM32F746 and STM32F407 DISC boards with LVGL UI optimization. Learn to enhance resolution compatibility, implement responsive design using LV_PCT macros, and test touch functionality on multiple hardware platforms.","og_url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2024-09-28T04:52:28+00:00","og_image":[{"width":1897,"height":851,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7.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":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32-LTDC, LCD-TFT, LVGL(MCU3) Lecture 65| Testing RGB mixer application on STM32F746 and STM32F407 DISC board","datePublished":"2024-09-28T04:52:28+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/"},"wordCount":709,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7.png","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/","url":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/","name":"Testing RGB Mixer Application on STM32F746 and STM32F407 DISC Board: LVGL UI Optimization and Touch Functionality","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7.png","datePublished":"2024-09-28T04:52:28+00:00","description":"Explore how the RGB mixer application runs on STM32F746 and STM32F407 DISC boards with LVGL UI optimization. Learn to enhance resolution compatibility, implement responsive design using LV_PCT macros, and test touch functionality on multiple hardware platforms.","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2024\/05\/Figure-7.png","width":1897,"height":851,"caption":"Figure 7. STM32F407DISCOVERY + SPI based LCD module"},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/stm32-ltdc-lcd-tft-lvgl-mcu-testing-rgb-mixer-application-on-stm32f746-stm32f407-disc-board\/#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 65| Testing RGB mixer application on STM32F746 and STM32F407 DISC board"}]},{"@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\/16454","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=16454"}],"version-history":[{"count":17,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/16454\/revisions"}],"predecessor-version":[{"id":17019,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/16454\/revisions\/17019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/16464"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=16454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=16454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=16454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}