Several examples run on only mbed-os5.13.0 (not 5.14.0)

Dependencies:   BD_SD_DISCO_F769NI BSP_DISCO_F769NI LCD_DISCO_F769NI TS_DISCO_F769NI USBHost_F769NI

Committer:
kenjiArai
Date:
Mon Oct 14 08:55:15 2019 +0000
Revision:
4:0f4affc00183
Parent:
3:35ac9ee7d2d6
Several Examples

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 3:35ac9ee7d2d6 1 // Original
kenjiArai 3:35ac9ee7d2d6 2 // https://os.mbed.com/teams/ST/code/DISCO-F769NI_TOUCHSCREEN_demo/
kenjiArai 3:35ac9ee7d2d6 3 //
kenjiArai 3:35ac9ee7d2d6 4 // Modified by K.Arai
kenjiArai 4:0f4affc00183 5 // October 14th, 2019
kenjiArai 3:35ac9ee7d2d6 6 //
kenjiArai 3:35ac9ee7d2d6 7
kenjiArai 3:35ac9ee7d2d6 8 #include "select_program.h"
kenjiArai 3:35ac9ee7d2d6 9 //#define EXAMPLE_3_LCD_TOUCH
kenjiArai 3:35ac9ee7d2d6 10 #ifdef EXAMPLE_3_LCD_TOUCH
kenjiArai 3:35ac9ee7d2d6 11
kenjiArai 3:35ac9ee7d2d6 12 #include "mbed.h"
kenjiArai 3:35ac9ee7d2d6 13 #include "stm32f769i_discovery.h"
kenjiArai 3:35ac9ee7d2d6 14 #include "stm32f769i_discovery_ts.h"
kenjiArai 3:35ac9ee7d2d6 15 #include "stm32f769i_discovery_lcd.h"
kenjiArai 3:35ac9ee7d2d6 16
kenjiArai 3:35ac9ee7d2d6 17 TS_StateTypeDef TS_State = {0};
kenjiArai 3:35ac9ee7d2d6 18 Serial pc(USBTX, USBRX, 115200);
kenjiArai 3:35ac9ee7d2d6 19
kenjiArai 3:35ac9ee7d2d6 20 int main()
kenjiArai 3:35ac9ee7d2d6 21 {
kenjiArai 3:35ac9ee7d2d6 22 uint16_t x1, y1;
kenjiArai 3:35ac9ee7d2d6 23
kenjiArai 3:35ac9ee7d2d6 24 pc.printf("\x1b[2J\x1b[H %s\r\n %s %s (UTC)\r\n",
kenjiArai 3:35ac9ee7d2d6 25 __FILE__, __DATE__, __TIME__);
kenjiArai 4:0f4affc00183 26 printf(" TOUCHSCREEN EXAMPLE FOR DISCO-F769NI:\r\n");
kenjiArai 3:35ac9ee7d2d6 27
kenjiArai 3:35ac9ee7d2d6 28 BSP_LCD_Init();
kenjiArai 3:35ac9ee7d2d6 29 BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS);
kenjiArai 3:35ac9ee7d2d6 30
kenjiArai 3:35ac9ee7d2d6 31 /* Touchscreen initialization */
kenjiArai 3:35ac9ee7d2d6 32 if (BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()) == TS_ERROR) {
kenjiArai 3:35ac9ee7d2d6 33 printf("BSP_TS_Init error\r\n");
kenjiArai 3:35ac9ee7d2d6 34 }
kenjiArai 3:35ac9ee7d2d6 35
kenjiArai 3:35ac9ee7d2d6 36 /* Clear the LCD */
kenjiArai 3:35ac9ee7d2d6 37 BSP_LCD_Clear(LCD_COLOR_WHITE);
kenjiArai 3:35ac9ee7d2d6 38
kenjiArai 3:35ac9ee7d2d6 39 /* Set Touchscreen Demo1 description */
kenjiArai 3:35ac9ee7d2d6 40 BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
kenjiArai 3:35ac9ee7d2d6 41 BSP_LCD_FillRect(0, 0, BSP_LCD_GetXSize(), 40);
kenjiArai 3:35ac9ee7d2d6 42 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
kenjiArai 3:35ac9ee7d2d6 43 BSP_LCD_SetBackColor(LCD_COLOR_BLUE);
kenjiArai 3:35ac9ee7d2d6 44 BSP_LCD_SetFont(&Font24);
kenjiArai 3:35ac9ee7d2d6 45 BSP_LCD_DisplayStringAt(0,
kenjiArai 3:35ac9ee7d2d6 46 10,
kenjiArai 3:35ac9ee7d2d6 47 (uint8_t *)"Touchscreen basic example",
kenjiArai 3:35ac9ee7d2d6 48 CENTER_MODE);
kenjiArai 3:35ac9ee7d2d6 49
kenjiArai 3:35ac9ee7d2d6 50 while (1) {
kenjiArai 3:35ac9ee7d2d6 51 BSP_TS_GetState(&TS_State);
kenjiArai 3:35ac9ee7d2d6 52 if(TS_State.touchDetected) {
kenjiArai 3:35ac9ee7d2d6 53 /* One or dual touch have been detected */
kenjiArai 3:35ac9ee7d2d6 54
kenjiArai 3:35ac9ee7d2d6 55 /* Get X and Y position of the first touch post calibrated */
kenjiArai 3:35ac9ee7d2d6 56 x1 = TS_State.touchX[0];
kenjiArai 3:35ac9ee7d2d6 57 y1 = TS_State.touchY[0];
kenjiArai 3:35ac9ee7d2d6 58 pc.printf("Touch Detected x=%d y=%d\r\n", x1, y1);
kenjiArai 3:35ac9ee7d2d6 59
kenjiArai 3:35ac9ee7d2d6 60 BSP_LCD_SetTextColor(LCD_COLOR_RED);
kenjiArai 3:35ac9ee7d2d6 61 BSP_LCD_FillCircle(x1, y1, 20);
kenjiArai 3:35ac9ee7d2d6 62
kenjiArai 3:35ac9ee7d2d6 63 ThisThread::sleep_for(10);
kenjiArai 3:35ac9ee7d2d6 64 }
kenjiArai 3:35ac9ee7d2d6 65 }
kenjiArai 3:35ac9ee7d2d6 66 }
kenjiArai 3:35ac9ee7d2d6 67
kenjiArai 3:35ac9ee7d2d6 68 #endif