Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BSP_DISCO_F746NG mbed
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 }
Generated on Wed Jul 13 2022 16:56:04 by
1.7.2