Library for virtual onscreen keyboard for STM32F746 Disco board
Dependencies: BSP_DISCO_F746NG mbed
Diff: main.cpp
- Revision:
- 0:3ea368f65bca
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Sep 17 11:36:24 2016 +0000 @@ -0,0 +1,75 @@ +/* + ******************************************************************************* + * Пример работы экранной клавиатуры на демо-плате STM32F746NG Discovery с + * использованием стандартного набора библиотек BSP и пользовательской + * библиотеки "keyboard.h" + ******************************************************************************* + */ + +/* Добавляем библиотеку для работы с LCD */ +#include "stm32746g_discovery_lcd.h" + +/* Добавляем библиотеку экранной клавиатуры */ +#include "keyboard.h" + +/* Вспомогательные переменые */ +uint8_t i; +uint8_t key; +uint8_t len; + +/* Пользовательский буфер */ +char buffer[45]; + +/* Основная программа */ +int main(void) +{ + /* Инициализация дисплея */ + BSP_LCD_Init(); + BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS); + BSP_LCD_LayerDefaultInit(1, LCD_FB_START_ADDRESS + (BSP_LCD_GetXSize() * BSP_LCD_GetYSize() * 4)); + + /* Включаем дисплей */ + BSP_LCD_DisplayOn(); + + /* Настраиваем первый и второй слои дисплея */ + BSP_LCD_SelectLayer(0); + BSP_LCD_Clear(LCD_COLOR_WHITE); + BSP_LCD_SelectLayer(1); + BSP_LCD_Clear(LCD_COLOR_BLACK); + BSP_LCD_SetTransparency(0, 0); + BSP_LCD_SetTransparency(1, 100); + + /* Настраиваем цвет фона экрана и цвет текста, а также шрифт */ + BSP_LCD_SetTextColor(LCD_COLOR_LIGHTGREEN); + BSP_LCD_SetBackColor(LCD_COLOR_BLACK); + BSP_LCD_SetFont(&Font16); + + /* Инициализация тач-экрана*/ + BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); + + /* Инициализация клавиатуры */ + Keyboard_init(0, 80); + + /* Основной цикл */ + while(1) + { + /* Вызываем обработчик экранной клавиатуры */ + key = Keyboard_handler(buffer); + + /* Если последней нажатой клавишей был "Enter", значит, пользовательский + * ввод завершен и его можно как-то обработать + */ + if (key == KEY_ENTER_VALUE) + { + /* Пользовательская реализация обработки ввода должна быть тут */ + + /* Затираем строчку со старым буфером и отображаем новый */ + BSP_LCD_ClearStringLine(1); + BSP_LCD_DisplayStringAtLine(1, (uint8_t *) buffer); + buffer[0] = '\0'; + } + + /* Задержка на 10 мс */ + HAL_Delay(10); + } +} \ No newline at end of file