Faberge Fabulous / Mbed 2 deprecated Keyboard

Dependencies:   BSP_DISCO_F746NG mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /*
00002  *******************************************************************************
00003  * Пример работы экранной клавиатуры на демо-плате STM32F746NG Discovery с
00004  * использованием стандартного набора библиотек BSP и пользовательской
00005  * библиотеки "keyboard.h"
00006  *******************************************************************************
00007  */
00008 
00009 /* Добавляем библиотеку для работы с LCD */
00010 #include "stm32746g_discovery_lcd.h"
00011 
00012 /* Добавляем библиотеку экранной клавиатуры */
00013 #include "keyboard.h"
00014 
00015 /* Вспомогательные переменые */
00016 uint8_t i;
00017 uint8_t key;
00018 uint8_t len;
00019 
00020 /* Пользовательский буфер */
00021 char buffer[45];
00022 
00023 /* Основная программа */
00024 int main(void)
00025 {
00026     /* Инициализация дисплея */
00027     BSP_LCD_Init();
00028     BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS);
00029     BSP_LCD_LayerDefaultInit(1, LCD_FB_START_ADDRESS + (BSP_LCD_GetXSize() * BSP_LCD_GetYSize() * 4));
00030 
00031     /* Включаем дисплей */
00032     BSP_LCD_DisplayOn();
00033 
00034     /* Настраиваем первый и второй слои дисплея */
00035     BSP_LCD_SelectLayer(0);
00036     BSP_LCD_Clear(LCD_COLOR_WHITE);
00037     BSP_LCD_SelectLayer(1);
00038     BSP_LCD_Clear(LCD_COLOR_BLACK);
00039     BSP_LCD_SetTransparency(0, 0);
00040     BSP_LCD_SetTransparency(1, 100);
00041 
00042     /* Настраиваем цвет фона экрана и цвет текста, а также шрифт  */
00043     BSP_LCD_SetTextColor(LCD_COLOR_LIGHTGREEN);
00044     BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
00045     BSP_LCD_SetFont(&Font16);
00046 
00047     /* Инициализация тач-экрана*/
00048     BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
00049     
00050     /* Инициализация клавиатуры */
00051     Keyboard_init(0, 80);
00052     
00053     /* Основной цикл */
00054     while(1) 
00055     {
00056         /* Вызываем обработчик экранной клавиатуры */
00057         key = Keyboard_handler(buffer);
00058         
00059         /* Если последней нажатой клавишей был "Enter", значит, пользовательский
00060          * ввод завершен и его можно как-то обработать
00061          */
00062         if (key == KEY_ENTER_VALUE)
00063         {
00064             /* Пользовательская реализация обработки ввода должна быть тут */
00065             
00066             /* Затираем строчку со старым буфером и отображаем новый */
00067             BSP_LCD_ClearStringLine(1);
00068             BSP_LCD_DisplayStringAtLine(1, (uint8_t *) buffer);
00069             buffer[0] = '\0';
00070         }
00071         
00072         /* Задержка на 10 мс */
00073         HAL_Delay(10);
00074     }
00075 }