fgdfg

Dependencies:   BSP_DISCO_F746NG

Committer:
amiradmin
Date:
Sun Jun 07 11:47:58 2020 +0000
Revision:
0:14a394d21b72
TEst

Who changed what in which revision?

UserRevisionLine numberNew contents of line
amiradmin 0:14a394d21b72 1 #include "mbed.h"
amiradmin 0:14a394d21b72 2 #include "stm32746g_discovery_lcd.h"
amiradmin 0:14a394d21b72 3 #include "stm32746g_discovery_ts.h"
amiradmin 0:14a394d21b72 4
amiradmin 0:14a394d21b72 5 int main()
amiradmin 0:14a394d21b72 6 {
amiradmin 0:14a394d21b72 7 TS_StateTypeDef TS_State;
amiradmin 0:14a394d21b72 8 uint16_t x, y;
amiradmin 0:14a394d21b72 9 uint8_t text[30];
amiradmin 0:14a394d21b72 10 uint8_t status;
amiradmin 0:14a394d21b72 11 uint8_t idx;
amiradmin 0:14a394d21b72 12 uint8_t cleared = 0;
amiradmin 0:14a394d21b72 13 uint8_t prev_nb_touches = 0;
amiradmin 0:14a394d21b72 14
amiradmin 0:14a394d21b72 15 BSP_LCD_Init();
amiradmin 0:14a394d21b72 16 BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
amiradmin 0:14a394d21b72 17 BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
amiradmin 0:14a394d21b72 18
amiradmin 0:14a394d21b72 19 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE);
amiradmin 0:14a394d21b72 20 HAL_Delay(1000);
amiradmin 0:14a394d21b72 21
amiradmin 0:14a394d21b72 22 status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
amiradmin 0:14a394d21b72 23 if (status != TS_OK) {
amiradmin 0:14a394d21b72 24 BSP_LCD_Clear(LCD_COLOR_RED);
amiradmin 0:14a394d21b72 25 BSP_LCD_SetBackColor(LCD_COLOR_RED);
amiradmin 0:14a394d21b72 26 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
amiradmin 0:14a394d21b72 27 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
amiradmin 0:14a394d21b72 28 } else {
amiradmin 0:14a394d21b72 29 BSP_LCD_Clear(LCD_COLOR_GREEN);
amiradmin 0:14a394d21b72 30 BSP_LCD_SetBackColor(LCD_COLOR_GREEN);
amiradmin 0:14a394d21b72 31 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
amiradmin 0:14a394d21b72 32 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE);
amiradmin 0:14a394d21b72 33 }
amiradmin 0:14a394d21b72 34
amiradmin 0:14a394d21b72 35 HAL_Delay(1000);
amiradmin 0:14a394d21b72 36 BSP_LCD_SetFont(&Font12);
amiradmin 0:14a394d21b72 37 BSP_LCD_SetBackColor(LCD_COLOR_BLUE);
amiradmin 0:14a394d21b72 38 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
amiradmin 0:14a394d21b72 39
amiradmin 0:14a394d21b72 40 while(1) {
amiradmin 0:14a394d21b72 41
amiradmin 0:14a394d21b72 42 BSP_TS_GetState(&TS_State);
amiradmin 0:14a394d21b72 43 if (TS_State.touchDetected) {
amiradmin 0:14a394d21b72 44 // Clear lines corresponding to old touches coordinates
amiradmin 0:14a394d21b72 45 if (TS_State.touchDetected < prev_nb_touches) {
amiradmin 0:14a394d21b72 46 for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) {
amiradmin 0:14a394d21b72 47 BSP_LCD_ClearStringLine(idx);
amiradmin 0:14a394d21b72 48 }
amiradmin 0:14a394d21b72 49 }
amiradmin 0:14a394d21b72 50 prev_nb_touches = TS_State.touchDetected;
amiradmin 0:14a394d21b72 51
amiradmin 0:14a394d21b72 52 cleared = 0;
amiradmin 0:14a394d21b72 53
amiradmin 0:14a394d21b72 54 sprintf((char*)text, "Touches: %d", TS_State.touchDetected);
amiradmin 0:14a394d21b72 55 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
amiradmin 0:14a394d21b72 56
amiradmin 0:14a394d21b72 57 for (idx = 0; idx < TS_State.touchDetected; idx++) {
amiradmin 0:14a394d21b72 58 x = TS_State.touchX[idx];
amiradmin 0:14a394d21b72 59 y = TS_State.touchY[idx];
amiradmin 0:14a394d21b72 60 sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y);
amiradmin 0:14a394d21b72 61 BSP_LCD_DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE);
amiradmin 0:14a394d21b72 62 }
amiradmin 0:14a394d21b72 63
amiradmin 0:14a394d21b72 64 BSP_LCD_DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE);
amiradmin 0:14a394d21b72 65 } else {
amiradmin 0:14a394d21b72 66 if (!cleared) {
amiradmin 0:14a394d21b72 67 BSP_LCD_Clear(LCD_COLOR_BLUE);
amiradmin 0:14a394d21b72 68 sprintf((char*)text, "Touches: 0");
amiradmin 0:14a394d21b72 69 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
amiradmin 0:14a394d21b72 70 cleared = 1;
amiradmin 0:14a394d21b72 71 }
amiradmin 0:14a394d21b72 72 }
amiradmin 0:14a394d21b72 73 }
amiradmin 0:14a394d21b72 74 }