
Capteur d'empreinte digitale, pin UART PC6, PC7 Alimentation 3.3V Utilisation : Initialisation du capteur en fond Choix de l'utilisateur pour vérifier l'empreinte Retour à la page de menu avec le bouton annuler
Dependencies: TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
main.cpp@3:9b58c1b47789, 2019-06-04 (annotated)
- Committer:
- arthurborg
- Date:
- Tue Jun 04 14:26:38 2019 +0000
- Revision:
- 3:9b58c1b47789
- Parent:
- 0:9933f7db9a9b
Version final
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bcostm | 0:9933f7db9a9b | 1 | #include "mbed.h" |
bcostm | 0:9933f7db9a9b | 2 | #include "TS_DISCO_F746NG.h" |
bcostm | 0:9933f7db9a9b | 3 | #include "LCD_DISCO_F746NG.h" |
bcostm | 0:9933f7db9a9b | 4 | |
arthurborg | 3:9b58c1b47789 | 5 | Serial empreinte(PC_6,PC_7,9600); |
arthurborg | 3:9b58c1b47789 | 6 | //Serial pc(USBTX,USBRX,115200); |
arthurborg | 3:9b58c1b47789 | 7 | |
bcostm | 0:9933f7db9a9b | 8 | LCD_DISCO_F746NG lcd; |
bcostm | 0:9933f7db9a9b | 9 | TS_DISCO_F746NG ts; |
bcostm | 0:9933f7db9a9b | 10 | |
arthurborg | 3:9b58c1b47789 | 11 | |
bcostm | 0:9933f7db9a9b | 12 | int main() |
bcostm | 0:9933f7db9a9b | 13 | { |
bcostm | 0:9933f7db9a9b | 14 | TS_StateTypeDef TS_State; |
bcostm | 0:9933f7db9a9b | 15 | uint16_t x, y; |
arthurborg | 3:9b58c1b47789 | 16 | char text[30]; |
arthurborg | 3:9b58c1b47789 | 17 | uint8_t idx=0; |
arthurborg | 3:9b58c1b47789 | 18 | int save = 0; |
arthurborg | 3:9b58c1b47789 | 19 | int etat = 0; |
arthurborg | 3:9b58c1b47789 | 20 | char a = 0x55; |
arthurborg | 3:9b58c1b47789 | 21 | char b = 0xAA; |
arthurborg | 3:9b58c1b47789 | 22 | char O = 0x00; |
arthurborg | 3:9b58c1b47789 | 23 | char para = 0x00; |
arthurborg | 3:9b58c1b47789 | 24 | char cmd = 0x01; |
bcostm | 0:9933f7db9a9b | 25 | |
arthurborg | 3:9b58c1b47789 | 26 | short int sum = a+b+O+para+cmd; |
arthurborg | 3:9b58c1b47789 | 27 | empreinte.putc(0x55); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 28 | empreinte.putc(0xAA); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 29 | empreinte.putc(0x01); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 30 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 31 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 32 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 33 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 34 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 35 | empreinte.putc(0x01); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 36 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 37 | empreinte.putc(0x01); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 38 | empreinte.putc(0x01); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 39 | |
arthurborg | 3:9b58c1b47789 | 40 | wait(0.005); |
arthurborg | 3:9b58c1b47789 | 41 | while (empreinte.readable()) { |
arthurborg | 3:9b58c1b47789 | 42 | empreinte.getc(); |
arthurborg | 3:9b58c1b47789 | 43 | wait(0.002); |
arthurborg | 3:9b58c1b47789 | 44 | } |
bcostm | 0:9933f7db9a9b | 45 | wait(1); |
bcostm | 0:9933f7db9a9b | 46 | |
arthurborg | 3:9b58c1b47789 | 47 | empreinte.putc(0x55); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 48 | empreinte.putc(0xAA); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 49 | empreinte.putc(0x01); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 50 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 51 | empreinte.putc(0x01); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 52 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 53 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 54 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 55 | empreinte.putc(0x12); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 56 | empreinte.putc(0); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 57 | empreinte.putc(0x13); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 58 | empreinte.putc(0x01); wait(0.1); |
arthurborg | 3:9b58c1b47789 | 59 | |
arthurborg | 3:9b58c1b47789 | 60 | |
arthurborg | 3:9b58c1b47789 | 61 | |
bcostm | 0:9933f7db9a9b | 62 | |
arthurborg | 3:9b58c1b47789 | 63 | /* |
arthurborg | 3:9b58c1b47789 | 64 | empreinte.putc(a); |
arthurborg | 3:9b58c1b47789 | 65 | empreinte.putc(b); |
arthurborg | 3:9b58c1b47789 | 66 | empreinte.putc(O); |
arthurborg | 3:9b58c1b47789 | 67 | empreinte.putc(para); |
arthurborg | 3:9b58c1b47789 | 68 | empreinte.putc(cmd); |
arthurborg | 3:9b58c1b47789 | 69 | empreinte.putc(sum & 0xFF); |
arthurborg | 3:9b58c1b47789 | 70 | empreinte.putc((sum & 0xFF00)>>8); |
arthurborg | 3:9b58c1b47789 | 71 | */ |
arthurborg | 3:9b58c1b47789 | 72 | lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"Bienvenue dans le programme", CENTER_MODE); |
arthurborg | 3:9b58c1b47789 | 73 | wait(3); |
arthurborg | 3:9b58c1b47789 | 74 | lcd.Clear(LCD_COLOR_WHITE); |
arthurborg | 3:9b58c1b47789 | 75 | lcd.SetFont(&Font20); |
arthurborg | 3:9b58c1b47789 | 76 | lcd.SetBackColor(LCD_COLOR_WHITE); |
arthurborg | 3:9b58c1b47789 | 77 | lcd.SetTextColor(LCD_COLOR_BLACK); // initialisation de l'écran tactil |
bcostm | 0:9933f7db9a9b | 78 | while(1) { |
arthurborg | 3:9b58c1b47789 | 79 | |
bcostm | 0:9933f7db9a9b | 80 | ts.GetState(&TS_State); |
arthurborg | 3:9b58c1b47789 | 81 | if (TS_State.touchDetected) { // récupération de la position de l'appui |
arthurborg | 3:9b58c1b47789 | 82 | x = TS_State.touchX[idx]; |
arthurborg | 3:9b58c1b47789 | 83 | y = TS_State.touchY[idx]; |
arthurborg | 3:9b58c1b47789 | 84 | } |
arthurborg | 3:9b58c1b47789 | 85 | |
arthurborg | 3:9b58c1b47789 | 86 | switch(etat){ |
arthurborg | 3:9b58c1b47789 | 87 | case 0: // écran d'acceuil |
arthurborg | 3:9b58c1b47789 | 88 | lcd.SetFont(&Font20); |
arthurborg | 3:9b58c1b47789 | 89 | lcd.SetBackColor(LCD_COLOR_WHITE); |
arthurborg | 3:9b58c1b47789 | 90 | lcd.SetTextColor(LCD_COLOR_BLACK); |
arthurborg | 3:9b58c1b47789 | 91 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p |
arthurborg | 3:9b58c1b47789 | 92 | lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Mme Fiona LEBEL", LEFT_MODE); //206p par 24p |
arthurborg | 3:9b58c1b47789 | 93 | lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"M Matthieu BICHET", RIGHT_MODE);//206p par 24p |
arthurborg | 3:9b58c1b47789 | 94 | lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"M Ludovic CHERIAUX", LEFT_MODE); // 239p par 24p |
arthurborg | 3:9b58c1b47789 | 95 | lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"M Renaud GOMES", RIGHT_MODE); // 191p par 24p |
arthurborg | 3:9b58c1b47789 | 96 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"M BAST22", CENTER_MODE); // 120p par 24p |
arthurborg | 3:9b58c1b47789 | 97 | etat = 1; |
arthurborg | 3:9b58c1b47789 | 98 | break; |
arthurborg | 3:9b58c1b47789 | 99 | |
arthurborg | 3:9b58c1b47789 | 100 | case 1: |
arthurborg | 3:9b58c1b47789 | 101 | if(((x >= 0) && (x <= 206)) && ((y >= 63) && (y <= 87))){ // case fiona |
arthurborg | 3:9b58c1b47789 | 102 | save = 2; |
arthurborg | 3:9b58c1b47789 | 103 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 104 | } |
arthurborg | 3:9b58c1b47789 | 105 | if(((x >= 254) && (x <= 460)) && ((y >= 63) && (y <= 87))){ // case matthieu |
arthurborg | 3:9b58c1b47789 | 106 | save = 3; |
arthurborg | 3:9b58c1b47789 | 107 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 108 | } |
arthurborg | 3:9b58c1b47789 | 109 | if(((x >= 0) && (x <= 239)) && ((y >= 163) && (y <= 187))){ // case Ludo |
arthurborg | 3:9b58c1b47789 | 110 | save = 4; |
arthurborg | 3:9b58c1b47789 | 111 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 112 | } |
arthurborg | 3:9b58c1b47789 | 113 | if(((x >= 269) && (x <= 460)) && ((y >= 163) && (y <= 187))){ // case Renaud |
arthurborg | 3:9b58c1b47789 | 114 | save = 5; |
arthurborg | 3:9b58c1b47789 | 115 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 116 | } |
arthurborg | 3:9b58c1b47789 | 117 | if(((x >= 169) && (x <= 289)) && ((y >= 111) && (y <= 135))){ // case Bast22 |
arthurborg | 3:9b58c1b47789 | 118 | save = 6; |
arthurborg | 3:9b58c1b47789 | 119 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 120 | } |
arthurborg | 3:9b58c1b47789 | 121 | break; |
arthurborg | 3:9b58c1b47789 | 122 | |
arthurborg | 3:9b58c1b47789 | 123 | case 2: // Gestion de l'état correspondant à Fiona |
arthurborg | 3:9b58c1b47789 | 124 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p |
arthurborg | 3:9b58c1b47789 | 125 | lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte Mme LEBEL",CENTER_MODE); |
arthurborg | 3:9b58c1b47789 | 126 | O = 0x50; |
arthurborg | 3:9b58c1b47789 | 127 | para = 0x00; |
arthurborg | 3:9b58c1b47789 | 128 | sum = a+b+O+para+cmd;; |
arthurborg | 3:9b58c1b47789 | 129 | empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum); |
arthurborg | 3:9b58c1b47789 | 130 | if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu |
arthurborg | 3:9b58c1b47789 | 131 | save = 0; |
arthurborg | 3:9b58c1b47789 | 132 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 133 | } |
arthurborg | 3:9b58c1b47789 | 134 | break; |
arthurborg | 3:9b58c1b47789 | 135 | |
arthurborg | 3:9b58c1b47789 | 136 | case 3: // Gestion de l'état correspondant à Matthieu |
arthurborg | 3:9b58c1b47789 | 137 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p |
arthurborg | 3:9b58c1b47789 | 138 | lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte M BICHET",CENTER_MODE); |
arthurborg | 3:9b58c1b47789 | 139 | O = 0x50; |
arthurborg | 3:9b58c1b47789 | 140 | para = 0x01; |
arthurborg | 3:9b58c1b47789 | 141 | sum = a+b+O+para+cmd; |
arthurborg | 3:9b58c1b47789 | 142 | empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum); |
arthurborg | 3:9b58c1b47789 | 143 | if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu |
arthurborg | 3:9b58c1b47789 | 144 | save = 0; |
arthurborg | 3:9b58c1b47789 | 145 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 146 | } |
arthurborg | 3:9b58c1b47789 | 147 | break; |
arthurborg | 3:9b58c1b47789 | 148 | |
arthurborg | 3:9b58c1b47789 | 149 | case 4: // Gestion de l'état correspondant à Ludovic |
arthurborg | 3:9b58c1b47789 | 150 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p |
arthurborg | 3:9b58c1b47789 | 151 | lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte M CHERIAUX",CENTER_MODE); |
arthurborg | 3:9b58c1b47789 | 152 | O = 0x50; |
arthurborg | 3:9b58c1b47789 | 153 | para = 0x02; |
arthurborg | 3:9b58c1b47789 | 154 | sum = a+b+O+para+cmd; |
arthurborg | 3:9b58c1b47789 | 155 | empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum); |
arthurborg | 3:9b58c1b47789 | 156 | if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu |
arthurborg | 3:9b58c1b47789 | 157 | save = 0; |
arthurborg | 3:9b58c1b47789 | 158 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 159 | } |
arthurborg | 3:9b58c1b47789 | 160 | break; |
arthurborg | 3:9b58c1b47789 | 161 | |
arthurborg | 3:9b58c1b47789 | 162 | case 5: // Gestion de l'état correspondant à Renaud |
arthurborg | 3:9b58c1b47789 | 163 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p |
arthurborg | 3:9b58c1b47789 | 164 | lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte M GOMES",CENTER_MODE); |
arthurborg | 3:9b58c1b47789 | 165 | O = 0x50; |
arthurborg | 3:9b58c1b47789 | 166 | para = 0x03; |
arthurborg | 3:9b58c1b47789 | 167 | sum = a+b+O+para+cmd; |
arthurborg | 3:9b58c1b47789 | 168 | empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum); |
arthurborg | 3:9b58c1b47789 | 169 | if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu |
arthurborg | 3:9b58c1b47789 | 170 | save = 0; |
arthurborg | 3:9b58c1b47789 | 171 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 172 | } |
arthurborg | 3:9b58c1b47789 | 173 | break; |
arthurborg | 3:9b58c1b47789 | 174 | |
arthurborg | 3:9b58c1b47789 | 175 | case 6: // |
arthurborg | 3:9b58c1b47789 | 176 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p |
arthurborg | 3:9b58c1b47789 | 177 | lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte BAST22",CENTER_MODE); |
arthurborg | 3:9b58c1b47789 | 178 | O = 0x50; |
arthurborg | 3:9b58c1b47789 | 179 | para = 0x04; |
arthurborg | 3:9b58c1b47789 | 180 | sum = a+b+O+para+cmd; |
arthurborg | 3:9b58c1b47789 | 181 | empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum); |
arthurborg | 3:9b58c1b47789 | 182 | if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu |
arthurborg | 3:9b58c1b47789 | 183 | save = 0; |
arthurborg | 3:9b58c1b47789 | 184 | etat = 12; |
arthurborg | 3:9b58c1b47789 | 185 | } |
arthurborg | 3:9b58c1b47789 | 186 | break; |
arthurborg | 3:9b58c1b47789 | 187 | |
arthurborg | 3:9b58c1b47789 | 188 | case 12: |
arthurborg | 3:9b58c1b47789 | 189 | lcd.Clear(LCD_COLOR_WHITE); |
arthurborg | 3:9b58c1b47789 | 190 | etat = save; |
arthurborg | 3:9b58c1b47789 | 191 | break; |
bcostm | 0:9933f7db9a9b | 192 | } |
bcostm | 0:9933f7db9a9b | 193 | } |
bcostm | 0:9933f7db9a9b | 194 | } |
arthurborg | 3:9b58c1b47789 | 195 |