
projelec
Dependencies: mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
main.cpp@8:4e6dfbe97bbd, 2020-03-19 (annotated)
- Committer:
- alexandrelouis
- Date:
- Thu Mar 19 07:55:50 2020 +0000
- Revision:
- 8:4e6dfbe97bbd
- Parent:
- 7:3d2369ac93a7
changes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Faberge | 0:3ea368f65bca | 1 | /* |
Faberge | 0:3ea368f65bca | 2 | ******************************************************************************* |
alexandrelouis | 8:4e6dfbe97bbd | 3 | * Un exemple du clavier à l’écran sur le panneau de démonstration STM32F746NG Discovery |
alexandrelouis | 8:4e6dfbe97bbd | 4 | Utilisation d’un ensemble standard de bibliothèques BSP et d’une |
alexandrelouis | 8:4e6dfbe97bbd | 5 | Bibliothèques "keyboard.h" |
Faberge | 0:3ea368f65bca | 6 | ******************************************************************************* |
Faberge | 0:3ea368f65bca | 7 | */ |
Faberge | 0:3ea368f65bca | 8 | |
alexandrelouis | 8:4e6dfbe97bbd | 9 | /* Ajouter une bibliothèque pour travailler avec LCD */ |
Faberge | 0:3ea368f65bca | 10 | #include "stm32746g_discovery_lcd.h" |
alexandrelouis | 8:4e6dfbe97bbd | 11 | /* Ajout d’une bibliothèque de claviers à l’écra */ |
Faberge | 0:3ea368f65bca | 12 | #include "keyboard.h" |
Faberge | 0:3ea368f65bca | 13 | |
jknowles | 3:12b494808ffa | 14 | #include "mbed.h" |
jknowles | 3:12b494808ffa | 15 | |
jknowles | 5:50c5e677f71a | 16 | // no such file: #include "USBSerial.h" |
jknowles | 3:12b494808ffa | 17 | |
alexandrelouis | 8:4e6dfbe97bbd | 18 | /* Modifications auxiliaires */ |
Faberge | 0:3ea368f65bca | 19 | uint8_t i; |
Faberge | 0:3ea368f65bca | 20 | uint8_t key; |
jknowles | 1:25b8d7bfc7d4 | 21 | uint8_t len; |
Faberge | 0:3ea368f65bca | 22 | |
alexandrelouis | 8:4e6dfbe97bbd | 23 | /* Mémoire tampon personnalisée */ |
jknowles | 2:14dc9a7c52ac | 24 | char kb_buffer[45]; |
Faberge | 0:3ea368f65bca | 25 | |
jknowles | 2:14dc9a7c52ac | 26 | void start_KB_LCD() |
Faberge | 0:3ea368f65bca | 27 | { |
alexandrelouis | 8:4e6dfbe97bbd | 28 | /* Initialisation de l’affichage |
alexandrelouis | 8:4e6dfbe97bbd | 29 | Nous éteignons l’écran. |
alexandrelouis | 8:4e6dfbe97bbd | 30 | Nous avons mis en place les première et deuxième couches de l’écran.*/ |
Faberge | 0:3ea368f65bca | 31 | BSP_LCD_Init(); |
Faberge | 0:3ea368f65bca | 32 | BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS); |
Faberge | 0:3ea368f65bca | 33 | BSP_LCD_LayerDefaultInit(1, LCD_FB_START_ADDRESS + (BSP_LCD_GetXSize() * BSP_LCD_GetYSize() * 4)); |
Faberge | 0:3ea368f65bca | 34 | BSP_LCD_DisplayOn(); |
Faberge | 0:3ea368f65bca | 35 | BSP_LCD_SelectLayer(0); |
Faberge | 0:3ea368f65bca | 36 | BSP_LCD_Clear(LCD_COLOR_WHITE); |
Faberge | 0:3ea368f65bca | 37 | BSP_LCD_SelectLayer(1); |
Faberge | 0:3ea368f65bca | 38 | BSP_LCD_Clear(LCD_COLOR_BLACK); |
Faberge | 0:3ea368f65bca | 39 | BSP_LCD_SetTransparency(0, 0); |
Faberge | 0:3ea368f65bca | 40 | BSP_LCD_SetTransparency(1, 100); |
alexandrelouis | 8:4e6dfbe97bbd | 41 | /* Définir la couleur de fond et la couleur du texte de l’écran, ainsi que la police */ |
alexandrelouis | 8:4e6dfbe97bbd | 42 | BSP_LCD_SetTextColor(LCD_COLOR_BLUE); |
alexandrelouis | 8:4e6dfbe97bbd | 43 | BSP_LCD_SetBackColor(LCD_COLOR_WHITE); |
Faberge | 0:3ea368f65bca | 44 | BSP_LCD_SetFont(&Font16); |
jknowles | 2:14dc9a7c52ac | 45 | |
alexandrelouis | 8:4e6dfbe97bbd | 46 | /* Initialisation de l’écran tactile*/ |
Faberge | 0:3ea368f65bca | 47 | BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
jknowles | 2:14dc9a7c52ac | 48 | |
jknowles | 2:14dc9a7c52ac | 49 | } |
jknowles | 2:14dc9a7c52ac | 50 | |
jknowles | 2:14dc9a7c52ac | 51 | |
jknowles | 4:0e5755618652 | 52 | void get_kbd_str(char *promp, char *bufr) |
jknowles | 2:14dc9a7c52ac | 53 | { |
jknowles | 2:14dc9a7c52ac | 54 | start_KB_LCD(); |
alexandrelouis | 8:4e6dfbe97bbd | 55 | Keyboard_init(10, 50); |
jknowles | 2:14dc9a7c52ac | 56 | while(1) { |
jknowles | 4:0e5755618652 | 57 | key = Keyboard_handler(promp, bufr); |
jknowles | 2:14dc9a7c52ac | 58 | if (key == KEY_ENTER_VALUE) break; // to go to another screen ? |
jknowles | 2:14dc9a7c52ac | 59 | HAL_Delay(10); |
jknowles | 2:14dc9a7c52ac | 60 | } |
jknowles | 2:14dc9a7c52ac | 61 | } |
jknowles | 2:14dc9a7c52ac | 62 | |
jknowles | 2:14dc9a7c52ac | 63 | |
alexandrelouis | 8:4e6dfbe97bbd | 64 | /* Programme de base */ |
jknowles | 2:14dc9a7c52ac | 65 | int main(void) |
jknowles | 2:14dc9a7c52ac | 66 | { |
alexandrelouis | 8:4e6dfbe97bbd | 67 | #define STATSIZE 126 |
jknowles | 6:310e91584386 | 68 | |
alexandrelouis | 8:4e6dfbe97bbd | 69 | char sbuf[126]; |
alexandrelouis | 8:4e6dfbe97bbd | 70 | char dbgtlk[126]; |
jknowles | 3:12b494808ffa | 71 | |
alexandrelouis | 8:4e6dfbe97bbd | 72 | char tstr[126]; |
jknowles | 3:12b494808ffa | 73 | char bstr[32]; |
jknowles | 3:12b494808ffa | 74 | char cstr[32]; |
jknowles | 3:12b494808ffa | 75 | char estr[32]; |
jknowles | 3:12b494808ffa | 76 | char pbstr[32]; |
jknowles | 3:12b494808ffa | 77 | int ii; |
jknowles | 3:12b494808ffa | 78 | |
jknowles | 3:12b494808ffa | 79 | char *rawp; |
jknowles | 3:12b494808ffa | 80 | char *csvp; |
jknowles | 3:12b494808ffa | 81 | int rawq; |
jknowles | 3:12b494808ffa | 82 | int bi, ci, ei; |
jknowles | 3:12b494808ffa | 83 | float pbf, bf, cf, ef; |
jknowles | 3:12b494808ffa | 84 | float pbar[STATSIZE]; |
jknowles | 3:12b494808ffa | 85 | float bar[STATSIZE]; |
jknowles | 3:12b494808ffa | 86 | float car[STATSIZE]; |
jknowles | 3:12b494808ffa | 87 | float ear[STATSIZE]; |
jknowles | 3:12b494808ffa | 88 | int duds = 0; |
jknowles | 3:12b494808ffa | 89 | char gotc; |
jknowles | 3:12b494808ffa | 90 | |
jknowles | 3:12b494808ffa | 91 | float pb_mn, pb_sd, b_mn, b_sd, c_mn, c_sd, e_mn, e_sd; |
jknowles | 3:12b494808ffa | 92 | |
alexandrelouis | 8:4e6dfbe97bbd | 93 | char msg_b[126]; |
jknowles | 2:14dc9a7c52ac | 94 | int u_tries; |
alexandrelouis | 8:4e6dfbe97bbd | 95 | char u_name[126]; |
alexandrelouis | 8:4e6dfbe97bbd | 96 | char u_passwd[126]; |
alexandrelouis | 8:4e6dfbe97bbd | 97 | char out_str[126]; |
alexandrelouis | 8:4e6dfbe97bbd | 98 | char out_str2[126]; |
jknowles | 2:14dc9a7c52ac | 99 | |
jknowles | 6:310e91584386 | 100 | |
alexandrelouis | 8:4e6dfbe97bbd | 101 | start_KB_LCD(); // Nouvel ecran ( noir ) |
jknowles | 6:310e91584386 | 102 | BSP_LCD_SetFont(&Font24); |
alexandrelouis | 8:4e6dfbe97bbd | 103 | get_kbd_str("Controleur MIDI", kb_buffer); // affiche le clavier + etiquette en haut de l'écran |
alexandrelouis | 8:4e6dfbe97bbd | 104 | strcpy(u_name, kb_buffer); //char * strcpy ( char * destination, const char * source ) copies the C string pointed by source into the array pointed by destination |
jknowles | 6:310e91584386 | 105 | kb_buffer[0] = '\0'; |
jknowles | 6:310e91584386 | 106 | |
jknowles | 6:310e91584386 | 107 | start_KB_LCD(); |
jknowles | 6:310e91584386 | 108 | BSP_LCD_SetFont(&Font24); |
jknowles | 6:310e91584386 | 109 | get_kbd_str("USE JOYSTICK TO ENTER PASSWORD:", kb_buffer); |
jknowles | 6:310e91584386 | 110 | strcpy(u_passwd, kb_buffer); |
jknowles | 6:310e91584386 | 111 | kb_buffer[0] = '\0'; |
jknowles | 6:310e91584386 | 112 | |
Faberge | 0:3ea368f65bca | 113 | } |