Basic Example / test application for the on-board MICRON QSPI-Flash. Ported from DISCO_L476VG_QSPI. Added printing on serial output and LCD screen.

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG QSPI_DISCO_F746NG TS_DISCO_F746NG mbed

Committer:
capsavon
Date:
Sat Oct 17 15:56:24 2015 +0000
Revision:
0:742b53764813
Child:
1:7bec6efe01d9
Backup of original example without modifications.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
capsavon 0:742b53764813 1 #include "mbed.h"
capsavon 0:742b53764813 2 #include "TS_DISCO_F746NG.h"
capsavon 0:742b53764813 3 #include "LCD_DISCO_F746NG.h"
capsavon 0:742b53764813 4
capsavon 0:742b53764813 5 LCD_DISCO_F746NG lcd;
capsavon 0:742b53764813 6 TS_DISCO_F746NG ts;
capsavon 0:742b53764813 7
capsavon 0:742b53764813 8 int main()
capsavon 0:742b53764813 9 {
capsavon 0:742b53764813 10 TS_StateTypeDef TS_State;
capsavon 0:742b53764813 11 uint16_t x, y;
capsavon 0:742b53764813 12 uint8_t text[30];
capsavon 0:742b53764813 13 uint8_t status;
capsavon 0:742b53764813 14 uint8_t idx;
capsavon 0:742b53764813 15 uint8_t cleared = 0;
capsavon 0:742b53764813 16 uint8_t prev_nb_touches = 0;
capsavon 0:742b53764813 17
capsavon 0:742b53764813 18 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE);
capsavon 0:742b53764813 19 wait(1);
capsavon 0:742b53764813 20
capsavon 0:742b53764813 21 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
capsavon 0:742b53764813 22 if (status != TS_OK) {
capsavon 0:742b53764813 23 lcd.Clear(LCD_COLOR_RED);
capsavon 0:742b53764813 24 lcd.SetBackColor(LCD_COLOR_RED);
capsavon 0:742b53764813 25 lcd.SetTextColor(LCD_COLOR_WHITE);
capsavon 0:742b53764813 26 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
capsavon 0:742b53764813 27 } else {
capsavon 0:742b53764813 28 lcd.Clear(LCD_COLOR_GREEN);
capsavon 0:742b53764813 29 lcd.SetBackColor(LCD_COLOR_GREEN);
capsavon 0:742b53764813 30 lcd.SetTextColor(LCD_COLOR_WHITE);
capsavon 0:742b53764813 31 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE);
capsavon 0:742b53764813 32 }
capsavon 0:742b53764813 33
capsavon 0:742b53764813 34 wait(1);
capsavon 0:742b53764813 35 lcd.SetFont(&Font12);
capsavon 0:742b53764813 36 lcd.SetBackColor(LCD_COLOR_BLUE);
capsavon 0:742b53764813 37 lcd.SetTextColor(LCD_COLOR_WHITE);
capsavon 0:742b53764813 38
capsavon 0:742b53764813 39 while(1) {
capsavon 0:742b53764813 40
capsavon 0:742b53764813 41 ts.GetState(&TS_State);
capsavon 0:742b53764813 42 if (TS_State.touchDetected) {
capsavon 0:742b53764813 43 // Clear lines corresponding to old touches coordinates
capsavon 0:742b53764813 44 if (TS_State.touchDetected < prev_nb_touches) {
capsavon 0:742b53764813 45 for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) {
capsavon 0:742b53764813 46 lcd.ClearStringLine(idx);
capsavon 0:742b53764813 47 }
capsavon 0:742b53764813 48 }
capsavon 0:742b53764813 49 prev_nb_touches = TS_State.touchDetected;
capsavon 0:742b53764813 50
capsavon 0:742b53764813 51 cleared = 0;
capsavon 0:742b53764813 52
capsavon 0:742b53764813 53 sprintf((char*)text, "Touches: %d", TS_State.touchDetected);
capsavon 0:742b53764813 54 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
capsavon 0:742b53764813 55
capsavon 0:742b53764813 56 for (idx = 0; idx < TS_State.touchDetected; idx++) {
capsavon 0:742b53764813 57 x = TS_State.touchX[idx];
capsavon 0:742b53764813 58 y = TS_State.touchY[idx];
capsavon 0:742b53764813 59 sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y);
capsavon 0:742b53764813 60 lcd.DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE);
capsavon 0:742b53764813 61 }
capsavon 0:742b53764813 62
capsavon 0:742b53764813 63 lcd.DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE);
capsavon 0:742b53764813 64 } else {
capsavon 0:742b53764813 65 if (!cleared) {
capsavon 0:742b53764813 66 lcd.Clear(LCD_COLOR_BLUE);
capsavon 0:742b53764813 67 sprintf((char*)text, "Touches: 0");
capsavon 0:742b53764813 68 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
capsavon 0:742b53764813 69 cleared = 1;
capsavon 0:742b53764813 70 }
capsavon 0:742b53764813 71 }
capsavon 0:742b53764813 72 }
capsavon 0:742b53764813 73 }