;

Dependencies:   BSP_DISCO_F746NG

Committer:
louisboisaubert
Date:
Tue Jun 22 13:01:13 2021 +0000
Revision:
6:c8648bfc56bb
Interfacage

Who changed what in which revision?

UserRevisionLine numberNew contents of line
louisboisaubert 6:c8648bfc56bb 1
louisboisaubert 6:c8648bfc56bb 2 #include "mbed.h"
louisboisaubert 6:c8648bfc56bb 3 #include "stm32746g_discovery_lcd.h"
louisboisaubert 6:c8648bfc56bb 4 #include "stm32746g_discovery_ts.h"
louisboisaubert 6:c8648bfc56bb 5 #include "GroveGPS.h"
louisboisaubert 6:c8648bfc56bb 6 GroveGPS gps;
louisboisaubert 6:c8648bfc56bb 7 PwmOut PWM1(PB_4);
louisboisaubert 6:c8648bfc56bb 8 PwmOut PWM2(PH_6);
louisboisaubert 6:c8648bfc56bb 9 PwmOut PWM3(PI_2);
louisboisaubert 6:c8648bfc56bb 10 PwmOut PWM4(PA_15);
louisboisaubert 6:c8648bfc56bb 11 PwmOut PWM5(PA_8);
louisboisaubert 6:c8648bfc56bb 12 PwmOut PWM6(PB_15);
louisboisaubert 6:c8648bfc56bb 13 PwmOut mypwm7(PA_0);
louisboisaubert 6:c8648bfc56bb 14 PwmOut mypwm8(PF_9);
louisboisaubert 6:c8648bfc56bb 15 PwmOut mypwm9(PF_8);
louisboisaubert 6:c8648bfc56bb 16 int main()
louisboisaubert 6:c8648bfc56bb 17 {
louisboisaubert 6:c8648bfc56bb 18 char buffer[100];
louisboisaubert 6:c8648bfc56bb 19 char buffer2[100];
louisboisaubert 6:c8648bfc56bb 20 char buffer3[100];
louisboisaubert 6:c8648bfc56bb 21 TS_StateTypeDef TS_State;
louisboisaubert 6:c8648bfc56bb 22 uint16_t x, y;
louisboisaubert 6:c8648bfc56bb 23 uint8_t text[30];
louisboisaubert 6:c8648bfc56bb 24 uint8_t status;
louisboisaubert 6:c8648bfc56bb 25 uint8_t idx;
louisboisaubert 6:c8648bfc56bb 26 uint8_t cleared = 0;
louisboisaubert 6:c8648bfc56bb 27 uint8_t prev_nb_touches = 0;
louisboisaubert 6:c8648bfc56bb 28 bool heure;
louisboisaubert 6:c8648bfc56bb 29 bool latitude;
louisboisaubert 6:c8648bfc56bb 30 bool longitude;
louisboisaubert 6:c8648bfc56bb 31
louisboisaubert 6:c8648bfc56bb 32 //initialisation LCD
louisboisaubert 6:c8648bfc56bb 33 BSP_LCD_Init();
louisboisaubert 6:c8648bfc56bb 34 BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
louisboisaubert 6:c8648bfc56bb 35 BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
louisboisaubert 6:c8648bfc56bb 36
louisboisaubert 6:c8648bfc56bb 37 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE);
louisboisaubert 6:c8648bfc56bb 38 HAL_Delay(1000);
louisboisaubert 6:c8648bfc56bb 39
louisboisaubert 6:c8648bfc56bb 40 status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
louisboisaubert 6:c8648bfc56bb 41 if (status != TS_OK) {
louisboisaubert 6:c8648bfc56bb 42 BSP_LCD_Clear(LCD_COLOR_RED);
louisboisaubert 6:c8648bfc56bb 43 BSP_LCD_SetBackColor(LCD_COLOR_RED);
louisboisaubert 6:c8648bfc56bb 44 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
louisboisaubert 6:c8648bfc56bb 45 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
louisboisaubert 6:c8648bfc56bb 46 } else {
louisboisaubert 6:c8648bfc56bb 47 BSP_LCD_Clear(LCD_COLOR_GREEN);
louisboisaubert 6:c8648bfc56bb 48 BSP_LCD_SetBackColor(LCD_COLOR_GREEN);
louisboisaubert 6:c8648bfc56bb 49 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
louisboisaubert 6:c8648bfc56bb 50 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE);
louisboisaubert 6:c8648bfc56bb 51 }
louisboisaubert 6:c8648bfc56bb 52
louisboisaubert 6:c8648bfc56bb 53 HAL_Delay(1000);
louisboisaubert 6:c8648bfc56bb 54 BSP_LCD_SetFont(&Font12);
louisboisaubert 6:c8648bfc56bb 55 BSP_LCD_SetBackColor(LCD_COLOR_BLUE);
louisboisaubert 6:c8648bfc56bb 56 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
louisboisaubert 6:c8648bfc56bb 57
louisboisaubert 6:c8648bfc56bb 58 while(1) {
louisboisaubert 6:c8648bfc56bb 59 /*
louisboisaubert 6:c8648bfc56bb 60 BSP_TS_GetState(&TS_State);
louisboisaubert 6:c8648bfc56bb 61 if (TS_State.touchDetected) {
louisboisaubert 6:c8648bfc56bb 62 // Clear lines corresponding to old touches coordinates
louisboisaubert 6:c8648bfc56bb 63 if (TS_State.touchDetected < prev_nb_touches) {
louisboisaubert 6:c8648bfc56bb 64 for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) {
louisboisaubert 6:c8648bfc56bb 65 BSP_LCD_ClearStringLine(idx);
louisboisaubert 6:c8648bfc56bb 66 }
louisboisaubert 6:c8648bfc56bb 67 }
louisboisaubert 6:c8648bfc56bb 68 */
louisboisaubert 6:c8648bfc56bb 69 // récupération de l'heure
louisboisaubert 6:c8648bfc56bb 70 heure = gps.getTimestamp(buffer);
louisboisaubert 6:c8648bfc56bb 71 BSP_LCD_Clear(LCD_COLOR_BLUE);
louisboisaubert 6:c8648bfc56bb 72 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
louisboisaubert 6:c8648bfc56bb 73 BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&buffer, CENTER_MODE);
louisboisaubert 6:c8648bfc56bb 74 /* Récupération de la latitude
louisboisaubert 6:c8648bfc56bb 75 latitude = gps.getLatitude(buffer2);
louisboisaubert 6:c8648bfc56bb 76 BSP_LCD_Clear(LCD_COLOR_BLUE);
louisboisaubert 6:c8648bfc56bb 77 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
louisboisaubert 6:c8648bfc56bb 78 BSP_LCD_DisplayStringAt(0, LINE(12), (uint8_t *)&buffer2, CENTER_MODE);
louisboisaubert 6:c8648bfc56bb 79 Récupération de la longitude
louisboisaubert 6:c8648bfc56bb 80 longitude = gps.getLongitude(buffer3);
louisboisaubert 6:c8648bfc56bb 81 BSP_LCD_Clear(LCD_COLOR_BLUE);
louisboisaubert 6:c8648bfc56bb 82 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
louisboisaubert 6:c8648bfc56bb 83 BSP_LCD_DisplayStringAt(0, LINE(14), (uint8_t *)&buffer3, CENTER_MODE);
louisboisaubert 6:c8648bfc56bb 84 */
louisboisaubert 6:c8648bfc56bb 85 PWM2 = 0;
louisboisaubert 6:c8648bfc56bb 86 PWM3 = 0.5;
louisboisaubert 6:c8648bfc56bb 87 PWM4 =0;
louisboisaubert 6:c8648bfc56bb 88 PWM5 = 0;
louisboisaubert 6:c8648bfc56bb 89 PWM6 = 0.5;
louisboisaubert 6:c8648bfc56bb 90 PWM3.period_ms(10);
louisboisaubert 6:c8648bfc56bb 91 HAL_Delay(500);
louisboisaubert 6:c8648bfc56bb 92 }
louisboisaubert 6:c8648bfc56bb 93 }
louisboisaubert 6:c8648bfc56bb 94