;
Dependencies: BSP_DISCO_F746NG
main.cpp@6:c8648bfc56bb, 2021-06-22 (annotated)
- Committer:
- louisboisaubert
- Date:
- Tue Jun 22 13:01:13 2021 +0000
- Revision:
- 6:c8648bfc56bb
Interfacage
Who changed what in which revision?
User | Revision | Line number | New 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 |