DISCO_H747I_LCD_demo
Dependencies: BSP_DISCO_H747I
main.cpp
00001 #include "mbed.h" 00002 #include "stm32h747i_discovery.h" 00003 #include "stm32h747i_discovery_lcd.h" 00004 #include "stlogo.h" 00005 00006 static void DISCO_LCD_INIT(void) 00007 { 00008 BSP_LCD_Init(); 00009 BSP_LCD_LayerDefaultInit(1, LCD_FB_START_ADDRESS); 00010 BSP_LCD_SelectLayer(1); 00011 BSP_LCD_SetFont(&LCD_DEFAULT_FONT); 00012 BSP_LCD_SetBackColor(LCD_COLOR_WHITE); 00013 BSP_LCD_Clear(LCD_COLOR_WHITE); 00014 } 00015 00016 static void LCD_Demo_Setup(void) 00017 { 00018 /* Set LCD Demo description */ 00019 BSP_LCD_SetTextColor(LCD_COLOR_BLUE); 00020 BSP_LCD_FillRect(0, 0, BSP_LCD_GetXSize(), 80); 00021 BSP_LCD_SetTextColor(LCD_COLOR_WHITE); 00022 BSP_LCD_SetBackColor(LCD_COLOR_BLUE); 00023 BSP_LCD_SetFont(&Font24); 00024 BSP_LCD_DisplayStringAt(0, 10, (uint8_t *)"LCD", CENTER_MODE); 00025 BSP_LCD_SetFont(&Font12); 00026 BSP_LCD_DisplayStringAt(0, 45, (uint8_t *)"This example shows different feature", CENTER_MODE); 00027 00028 /* Set the LCD Text Color */ 00029 BSP_LCD_SetTextColor(LCD_COLOR_BLUE); 00030 BSP_LCD_DrawRect(10, 90, BSP_LCD_GetXSize() - 20, BSP_LCD_GetYSize() - 100); 00031 BSP_LCD_DrawRect(11, 91, BSP_LCD_GetXSize() - 22, BSP_LCD_GetYSize() - 102); 00032 } 00033 00034 /** 00035 * @brief Show LCD Features 00036 * @param feature : feature index 00037 * @retval None 00038 */ 00039 static void LCD_Demo_Feature(uint8_t feature) 00040 { 00041 int32_t i = 0; 00042 00043 Point Points[] = {{20, 150}, {80, 150}, {80, 200}}; 00044 Point Points2[3]; 00045 uint8_t text[50]; 00046 00047 BSP_LCD_SetBackColor(LCD_COLOR_WHITE); 00048 BSP_LCD_SetTextColor(LCD_COLOR_WHITE); 00049 BSP_LCD_FillRect(12, 92, BSP_LCD_GetXSize() - 24, BSP_LCD_GetYSize() - 104); 00050 BSP_LCD_SetTextColor(LCD_COLOR_BLACK); 00051 BSP_LCD_SetFont(&Font16); 00052 00053 switch (feature) { 00054 case 0: 00055 /* Text Feature */ 00056 BSP_LCD_SetFont(&Font16); 00057 BSP_LCD_DisplayStringAt(14, 100, (uint8_t *)"Left aligned Text", LEFT_MODE); 00058 BSP_LCD_DisplayStringAt(14, 115, (uint8_t *)"Center aligned Text", CENTER_MODE); 00059 BSP_LCD_DisplayStringAt(14, 130, (uint8_t *)"Right aligned Text", RIGHT_MODE); 00060 BSP_LCD_SetFont(&Font24); 00061 BSP_LCD_DisplayStringAt(14, 180, (uint8_t *)"Font24", LEFT_MODE); 00062 BSP_LCD_SetFont(&Font20); 00063 BSP_LCD_DisplayStringAt(BSP_LCD_GetXSize() / 2 - 20, 180, (uint8_t *)"Font20", LEFT_MODE); 00064 BSP_LCD_SetFont(&Font16); 00065 BSP_LCD_DisplayStringAt(BSP_LCD_GetXSize() - 80, 184, (uint8_t *)"Font16", LEFT_MODE); 00066 break; 00067 00068 case 1: 00069 /* Draw misc. Shapes */ 00070 BSP_LCD_SetTextColor(LCD_COLOR_BLACK); 00071 BSP_LCD_DrawRect(20, 100, 60, 40); 00072 BSP_LCD_FillRect(100, 100, 60, 40); 00073 00074 BSP_LCD_SetTextColor(LCD_COLOR_GRAY); 00075 BSP_LCD_DrawCircle(BSP_LCD_GetXSize() - 120, 120, 20); 00076 BSP_LCD_FillCircle(BSP_LCD_GetXSize() - 40, 120, 20); 00077 00078 BSP_LCD_SetTextColor(LCD_COLOR_GREEN); 00079 BSP_LCD_DrawPolygon(Points, 3); 00080 00081 BSP_LCD_SetTextColor(LCD_COLOR_RED); 00082 BSP_LCD_DrawEllipse(130, 170, 30, 20); 00083 BSP_LCD_FillEllipse(200, 170, 30, 20); 00084 00085 BSP_LCD_SetTextColor(LCD_COLOR_BLACK); 00086 BSP_LCD_DrawHLine(20, BSP_LCD_GetYSize() - 30, BSP_LCD_GetXSize() / 5); 00087 BSP_LCD_DrawLine(100, BSP_LCD_GetYSize() - 20, 230, BSP_LCD_GetYSize() - 50); 00088 BSP_LCD_DrawLine(100, BSP_LCD_GetYSize() - 50, 230, BSP_LCD_GetYSize() - 20); 00089 00090 Points2[0].X = BSP_LCD_GetXSize() - 80; 00091 Points2[0].Y = 150; 00092 Points2[1].X = BSP_LCD_GetXSize() - 20; 00093 Points2[1].Y = 150; 00094 Points2[2].X = BSP_LCD_GetXSize() - 20; 00095 Points2[2].Y = 200; 00096 00097 BSP_LCD_SetTextColor(LCD_COLOR_GREEN); 00098 BSP_LCD_FillPolygon(Points2, 3); 00099 break; 00100 00101 case 2: 00102 /* Draw Bitmap */ 00103 BSP_LCD_DrawBitmap(20, 100, (uint8_t *)stlogo); 00104 HAL_Delay(500); 00105 00106 BSP_LCD_DrawBitmap(BSP_LCD_GetXSize() / 2 - 40, 100, (uint8_t *)stlogo); 00107 HAL_Delay(500); 00108 00109 BSP_LCD_DrawBitmap(BSP_LCD_GetXSize() - 100, 100, (uint8_t *)stlogo); 00110 HAL_Delay(500); 00111 00112 BSP_LCD_DrawBitmap(20, BSP_LCD_GetYSize() - 80, (uint8_t *)stlogo); 00113 HAL_Delay(500); 00114 00115 BSP_LCD_DrawBitmap(BSP_LCD_GetXSize() / 2 - 40, BSP_LCD_GetYSize() - 80, (uint8_t *)stlogo); 00116 HAL_Delay(500); 00117 00118 BSP_LCD_DrawBitmap(BSP_LCD_GetXSize() - 100, BSP_LCD_GetYSize() - 80, (uint8_t *)stlogo); 00119 HAL_Delay(500); 00120 break; 00121 00122 case 3: 00123 /* Set the LCD Back Color and Text Color*/ 00124 BSP_LCD_SetBackColor(LCD_COLOR_WHITE); 00125 BSP_LCD_SetTextColor(LCD_COLOR_GREEN); 00126 BSP_LCD_SetFont(&Font24); 00127 00128 /* Set the brightness */ 00129 for (i = 100; i >= 0; i -= 10) { 00130 sprintf((char *)text, " Brightness = %d ", (int)i); 00131 BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize() / 2 + 45, (uint8_t *)text, CENTER_MODE); 00132 BSP_LCD_SetBrightness(i); 00133 HAL_Delay(300); 00134 } 00135 00136 for (i = 0; i <= 100; i += 10) { 00137 sprintf((char *)text, " Brightness = %d ", (int)i); 00138 BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize() / 2 + 45, (uint8_t *)text, CENTER_MODE); 00139 BSP_LCD_SetBrightness(i); 00140 HAL_Delay(300); 00141 } 00142 break; 00143 } 00144 } 00145 00146 00147 int main() 00148 { 00149 printf("\nSTART\n"); 00150 00151 DISCO_LCD_INIT(); 00152 LCD_Demo_Setup(); 00153 00154 while (1) { 00155 for (int LCD_Feature = 0; LCD_Feature < 4; ++LCD_Feature) { 00156 printf("Demo LCD feature %d\n", LCD_Feature); 00157 LCD_Demo_Feature(LCD_Feature); 00158 HAL_Delay(10000); 00159 } 00160 } 00161 }
Generated on Thu Jul 14 2022 05:04:58 by 1.7.2