![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Unmodifed demo code
Dependencies: BSP_DISCO_F769NI
Diff: main.cpp
- Revision:
- 3:45a625d2dcc4
- Parent:
- 0:db5cf2d28be1
--- a/main.cpp Wed Jun 07 11:34:02 2017 +0000 +++ b/main.cpp Fri Nov 15 15:08:32 2019 +0100 @@ -1,25 +1,133 @@ #include "mbed.h" -#include "LCD_DISCO_F769NI.h" +#include "stm32f769i_discovery_lcd.h" +#include "stlogo.h" + +uint32_t Xsize = 0; +uint32_t Ysize = 0; + +/** + * @brief Show LCD Features + * @param feature : feature index + * @retval None + */ +static void LCD_Show_Feature(uint8_t feature) +{ + Point Points[] = {{20, 150}, {80, 150}, {80, 200}}; + Point Points2[3]; + + Points2[0].X = Xsize - 80; + Points2[0].Y = 150; + Points2[1].X = Xsize - 20; + Points2[1].Y = 150; + Points2[2].X = Xsize - 20; + Points2[2].Y = 200; + + BSP_LCD_SetBackColor(LCD_COLOR_WHITE); + BSP_LCD_SetTextColor(LCD_COLOR_WHITE); + BSP_LCD_FillRect(12, 92, Xsize - 24, Ysize - 104); + BSP_LCD_SetTextColor(LCD_COLOR_BLACK); + + switch (feature) { + case 0: + /* Text Feature */ + + BSP_LCD_DisplayStringAt(14, 100, (uint8_t *)"Left aligned Text", LEFT_MODE); + BSP_LCD_DisplayStringAt(0, 115, (uint8_t *)"Center aligned Text", CENTER_MODE); + BSP_LCD_DisplayStringAt(14, 130, (uint8_t *)"Right aligned Text", RIGHT_MODE); + BSP_LCD_SetFont(&Font24); + BSP_LCD_DisplayStringAt(14, 180, (uint8_t *)"Font24", LEFT_MODE); + BSP_LCD_SetFont(&Font20); + BSP_LCD_DisplayStringAt(Xsize / 2 - 20, 180, (uint8_t *)"Font20", LEFT_MODE); + BSP_LCD_SetFont(&Font16); + BSP_LCD_DisplayStringAt(Xsize - 80, 184, (uint8_t *)"Font16", LEFT_MODE); + break; + + case 1: -LCD_DISCO_F769NI lcd; -DigitalOut led_red(LED1); -DigitalOut led_green(LED2); + /* Draw misc. Shapes */ + BSP_LCD_SetTextColor(LCD_COLOR_BLACK); + BSP_LCD_DrawRect(20, 100, 60, 40); + BSP_LCD_FillRect(100, 100, 60, 40); + + BSP_LCD_SetTextColor(LCD_COLOR_GRAY); + BSP_LCD_DrawCircle(Xsize - 120, 120, 20); + BSP_LCD_FillCircle(Xsize - 40, 120, 20); + + BSP_LCD_SetTextColor(LCD_COLOR_GREEN); + BSP_LCD_DrawPolygon(Points, 3); + + BSP_LCD_SetTextColor(LCD_COLOR_RED); + BSP_LCD_DrawEllipse(130, 170, 30, 20); + BSP_LCD_FillEllipse(200, 170, 30, 20); + + BSP_LCD_SetTextColor(LCD_COLOR_BLACK); + BSP_LCD_DrawHLine(20, Ysize - 30, Xsize / 5); + BSP_LCD_DrawLine(100, Ysize - 20, 230, Ysize - 50); + BSP_LCD_DrawLine(100, Ysize - 50, 230, Ysize - 20); + + BSP_LCD_SetTextColor(LCD_COLOR_GREEN); + BSP_LCD_FillPolygon(Points2, 3); + break; + + case 2: + /* Draw Bitmap */ + BSP_LCD_DrawBitmap(20, 100, (uint8_t *)stlogo); + HAL_Delay(500); + + BSP_LCD_DrawBitmap(Xsize / 2 - 40, 100, (uint8_t *)stlogo); + HAL_Delay(500); + + BSP_LCD_DrawBitmap(Xsize - 100, 100, (uint8_t *)stlogo); + HAL_Delay(500); + + BSP_LCD_DrawBitmap(20, Ysize - 80, (uint8_t *)stlogo); + HAL_Delay(500); + + BSP_LCD_DrawBitmap(Xsize / 2 - 40, Ysize - 80, (uint8_t *)stlogo); + HAL_Delay(500); + + BSP_LCD_DrawBitmap(Xsize - 100, Ysize - 80, (uint8_t *)stlogo); + HAL_Delay(500); + break; + } +} + int main() { - led_green = 0; - led_red = 1; + uint8_t LCD_Feature = 0; + + BSP_LCD_Init(); + // BSP_LCD_InitEx(LCD_ORIENTATION_PORTRAIT); + BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS); + BSP_LCD_SelectLayer(0); + + Xsize = BSP_LCD_GetXSize(); + Ysize = BSP_LCD_GetYSize(); - lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"MBED EXAMPLE", CENTER_MODE); - wait(2); - lcd.Clear(LCD_COLOR_BLUE); - lcd.SetBackColor(LCD_COLOR_BLUE); - lcd.SetTextColor(LCD_COLOR_WHITE); - lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"DISCOVERY STM32F769NI", CENTER_MODE); + BSP_LCD_Clear(LCD_COLOR_WHITE); + BSP_LCD_SetTextColor(LCD_COLOR_BLUE); + BSP_LCD_FillRect(0, 0, Xsize, 80); + BSP_LCD_SetTextColor(LCD_COLOR_WHITE); + BSP_LCD_SetBackColor(LCD_COLOR_BLUE); + BSP_LCD_SetFont(&Font24); + BSP_LCD_DisplayStringAt(0, 0, (uint8_t *)"MBED LCD EXAMPLE", CENTER_MODE); + BSP_LCD_SetFont(&Font12); + BSP_LCD_DisplayStringAt(0, 30, (uint8_t *)"DISCOVERY STM32F769NI", CENTER_MODE); - led_green = 1; - led_red = 0; + BSP_LCD_SetTextColor(LCD_COLOR_BLUE); + BSP_LCD_DrawRect(10, 90, Xsize - 20, Ysize - 100); + BSP_LCD_DrawRect(11, 91, Xsize - 22, Ysize - 102); + + HAL_Delay(1000); - while(1) { + while (1) { + LCD_Show_Feature(LCD_Feature); + HAL_Delay(3000); + + LCD_Feature++; + if (LCD_Feature == 3) { + LCD_Feature = 0; + } } }