Basic example showing how to drive the LCD
Dependencies: BSP_DISCO_F769NI
main.cpp
00001 #include "mbed.h" 00002 #include "stm32f769i_discovery_lcd.h" 00003 #include "stlogo.h" 00004 00005 uint32_t Xsize = 0; 00006 uint32_t Ysize = 0; 00007 00008 /** 00009 * @brief Show LCD Features 00010 * @param feature : feature index 00011 * @retval None 00012 */ 00013 static void LCD_Show_Feature(uint8_t feature) 00014 { 00015 Point Points[] = {{20, 150}, {80, 150}, {80, 200}}; 00016 Point Points2[3]; 00017 00018 Points2[0].X = Xsize - 80; 00019 Points2[0].Y = 150; 00020 Points2[1].X = Xsize - 20; 00021 Points2[1].Y = 150; 00022 Points2[2].X = Xsize - 20; 00023 Points2[2].Y = 200; 00024 00025 BSP_LCD_SetBackColor(LCD_COLOR_WHITE); 00026 BSP_LCD_SetTextColor(LCD_COLOR_WHITE); 00027 BSP_LCD_FillRect(12, 92, Xsize - 24, Ysize - 104); 00028 BSP_LCD_SetTextColor(LCD_COLOR_BLACK); 00029 00030 switch (feature) { 00031 case 0: 00032 /* Text Feature */ 00033 00034 BSP_LCD_DisplayStringAt(14, 100, (uint8_t *)"Left aligned Text", LEFT_MODE); 00035 BSP_LCD_DisplayStringAt(0, 115, (uint8_t *)"Center aligned Text", CENTER_MODE); 00036 BSP_LCD_DisplayStringAt(14, 130, (uint8_t *)"Right aligned Text", RIGHT_MODE); 00037 BSP_LCD_SetFont(&Font24); 00038 BSP_LCD_DisplayStringAt(14, 180, (uint8_t *)"Font24", LEFT_MODE); 00039 BSP_LCD_SetFont(&Font20); 00040 BSP_LCD_DisplayStringAt(Xsize / 2 - 20, 180, (uint8_t *)"Font20", LEFT_MODE); 00041 BSP_LCD_SetFont(&Font16); 00042 BSP_LCD_DisplayStringAt(Xsize - 80, 184, (uint8_t *)"Font16", LEFT_MODE); 00043 break; 00044 00045 case 1: 00046 00047 /* Draw misc. Shapes */ 00048 BSP_LCD_SetTextColor(LCD_COLOR_BLACK); 00049 BSP_LCD_DrawRect(20, 100, 60, 40); 00050 BSP_LCD_FillRect(100, 100, 60, 40); 00051 00052 BSP_LCD_SetTextColor(LCD_COLOR_GRAY); 00053 BSP_LCD_DrawCircle(Xsize - 120, 120, 20); 00054 BSP_LCD_FillCircle(Xsize - 40, 120, 20); 00055 00056 BSP_LCD_SetTextColor(LCD_COLOR_GREEN); 00057 BSP_LCD_DrawPolygon(Points, 3); 00058 00059 BSP_LCD_SetTextColor(LCD_COLOR_RED); 00060 BSP_LCD_DrawEllipse(130, 170, 30, 20); 00061 BSP_LCD_FillEllipse(200, 170, 30, 20); 00062 00063 BSP_LCD_SetTextColor(LCD_COLOR_BLACK); 00064 BSP_LCD_DrawHLine(20, Ysize - 30, Xsize / 5); 00065 BSP_LCD_DrawLine(100, Ysize - 20, 230, Ysize - 50); 00066 BSP_LCD_DrawLine(100, Ysize - 50, 230, Ysize - 20); 00067 00068 BSP_LCD_SetTextColor(LCD_COLOR_GREEN); 00069 BSP_LCD_FillPolygon(Points2, 3); 00070 break; 00071 00072 case 2: 00073 /* Draw Bitmap */ 00074 BSP_LCD_DrawBitmap(20, 100, (uint8_t *)stlogo); 00075 HAL_Delay(500); 00076 00077 BSP_LCD_DrawBitmap(Xsize / 2 - 40, 100, (uint8_t *)stlogo); 00078 HAL_Delay(500); 00079 00080 BSP_LCD_DrawBitmap(Xsize - 100, 100, (uint8_t *)stlogo); 00081 HAL_Delay(500); 00082 00083 BSP_LCD_DrawBitmap(20, Ysize - 80, (uint8_t *)stlogo); 00084 HAL_Delay(500); 00085 00086 BSP_LCD_DrawBitmap(Xsize / 2 - 40, Ysize - 80, (uint8_t *)stlogo); 00087 HAL_Delay(500); 00088 00089 BSP_LCD_DrawBitmap(Xsize - 100, Ysize - 80, (uint8_t *)stlogo); 00090 HAL_Delay(500); 00091 break; 00092 } 00093 } 00094 00095 00096 int main() 00097 { 00098 uint8_t LCD_Feature = 0; 00099 00100 BSP_LCD_Init(); 00101 // BSP_LCD_InitEx(LCD_ORIENTATION_PORTRAIT); 00102 BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS); 00103 BSP_LCD_SelectLayer(0); 00104 00105 Xsize = BSP_LCD_GetXSize(); 00106 Ysize = BSP_LCD_GetYSize(); 00107 00108 BSP_LCD_Clear(LCD_COLOR_WHITE); 00109 BSP_LCD_SetTextColor(LCD_COLOR_BLUE); 00110 BSP_LCD_FillRect(0, 0, Xsize, 80); 00111 BSP_LCD_SetTextColor(LCD_COLOR_WHITE); 00112 BSP_LCD_SetBackColor(LCD_COLOR_BLUE); 00113 BSP_LCD_SetFont(&Font24); 00114 BSP_LCD_DisplayStringAt(0, 0, (uint8_t *)"MBED LCD EXAMPLE", CENTER_MODE); 00115 BSP_LCD_SetFont(&Font12); 00116 BSP_LCD_DisplayStringAt(0, 30, (uint8_t *)"DISCOVERY STM32F769NI", CENTER_MODE); 00117 00118 BSP_LCD_SetTextColor(LCD_COLOR_BLUE); 00119 BSP_LCD_DrawRect(10, 90, Xsize - 20, Ysize - 100); 00120 BSP_LCD_DrawRect(11, 91, Xsize - 22, Ysize - 102); 00121 00122 HAL_Delay(1000); 00123 00124 while (1) { 00125 LCD_Show_Feature(LCD_Feature); 00126 HAL_Delay(3000); 00127 00128 LCD_Feature++; 00129 if (LCD_Feature == 3) { 00130 LCD_Feature = 0; 00131 } 00132 } 00133 }
Generated on Tue Jul 12 2022 19:54:53 by 1.7.2