FabLab Nîmes / Mbed 2 deprecated FabLab_Bluetooth

Dependencies:   mbed

Committer:
Giamarchi
Date:
Sat Mar 26 09:26:26 2022 +0000
Revision:
5:46a732673cc5
Parent:
4:610e1572bd1b
Programme de dialogue entre un PC et un Smartphone en Bluetooth

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Giamarchi 2:c1a4641eeacf 1 //==============================================================================
Giamarchi 2:c1a4641eeacf 2 // FabLab Nîmes
Giamarchi 2:c1a4641eeacf 3 // Initiation à la Programmation
Giamarchi 2:c1a4641eeacf 4 // Auteur : Frédéric Giamarchi
Giamarchi 2:c1a4641eeacf 5
Giamarchi 4:610e1572bd1b 6 // Date : 24 mars 2022
Giamarchi 4:610e1572bd1b 7 // TP : Liaison Bluetooth
Giamarchi 4:610e1572bd1b 8 //
Giamarchi 2:c1a4641eeacf 9 // Utilisation de fonctions décrites dans un fichier séparé
Giamarchi 2:c1a4641eeacf 10 //==============================================================================
Giamarchi 2:c1a4641eeacf 11 // Déclarations des ressources
Giamarchi 0:531f33a2550d 12 #include "mbed.h"
Giamarchi 2:c1a4641eeacf 13 #include "fonctions.h" // Appel des fonctions du fichier : fonctions.h
Giamarchi 5:46a732673cc5 14 #include "soft_uart.h"
Giamarchi 0:531f33a2550d 15
Giamarchi 2:c1a4641eeacf 16 //==============================================================================
Giamarchi 2:c1a4641eeacf 17 // Déclaration des broches
Giamarchi 2:c1a4641eeacf 18 DigitalOut DEL(PA_11); // Ligne PA_11 sur la carte Nucléo
Giamarchi 2:c1a4641eeacf 19 Serial pc(USBTX, USBRX); // Dialogue Série port USB à 9600 Baud
Giamarchi 2:c1a4641eeacf 20
Giamarchi 2:c1a4641eeacf 21 //==============================================================================
Giamarchi 2:c1a4641eeacf 22 // Déclaration des variables
Giamarchi 0:531f33a2550d 23
Giamarchi 2:c1a4641eeacf 24 char c; // variable de type caractère
Giamarchi 3:c75f8eddeaf4 25 float temp; // variable de type réel
Giamarchi 3:c75f8eddeaf4 26 int16_t vitesse; // variable de type 16 bits signée
Giamarchi 5:46a732673cc5 27 char tab[10]; // tableau de variable de type caractère
Giamarchi 5:46a732673cc5 28 char buf[10];
Giamarchi 5:46a732673cc5 29 uint8_t ptr, k;
Giamarchi 1:95172f59262a 30
Giamarchi 2:c1a4641eeacf 31 //==============================================================================
Giamarchi 2:c1a4641eeacf 32 // Début du Programme
Giamarchi 2:c1a4641eeacf 33 int main() // Fonction principale
Giamarchi 0:531f33a2550d 34 {
Giamarchi 2:c1a4641eeacf 35 Init_Fonctions(); // Exécute cette fonction
Giamarchi 4:610e1572bd1b 36 pc.printf("\r\nFabLab Bluetooth\r\n\n");
Giamarchi 5:46a732673cc5 37
Giamarchi 5:46a732673cc5 38 init_uart(); // Initialise la liaison série soft
Giamarchi 5:46a732673cc5 39 printStr("FabLab Bluetooth\r\n");
Giamarchi 5:46a732673cc5 40 ptr = 0;
Giamarchi 5:46a732673cc5 41 k = 0;
Giamarchi 3:c75f8eddeaf4 42
Giamarchi 2:c1a4641eeacf 43 //==============================================================================
Giamarchi 2:c1a4641eeacf 44 // Boucle Infinie
Giamarchi 0:531f33a2550d 45 while(1)
Giamarchi 0:531f33a2550d 46 {
Giamarchi 5:46a732673cc5 47 if (kbhit()) // Un caractère est reçu sur le BT
Giamarchi 3:c75f8eddeaf4 48 {
Giamarchi 5:46a732673cc5 49 buf[k] = _getchar(); // Mémorise le carcatère dans un tableau
Giamarchi 5:46a732673cc5 50
Giamarchi 5:46a732673cc5 51 if((buf[k] == 0x0A) || (buf[k] == 0x0D)) // Test touche entrée en mode ASCII
Giamarchi 5:46a732673cc5 52 {
Giamarchi 5:46a732673cc5 53 buf[k] = 0; // Transforme le tableau en chaine de caractères
Giamarchi 5:46a732673cc5 54 k = 0; // Met le pointeur à 0
Giamarchi 5:46a732673cc5 55 pc.printf("%s\n\r",buf); // Envoi le texte vers le PC
Giamarchi 5:46a732673cc5 56 }
Giamarchi 5:46a732673cc5 57 else
Giamarchi 5:46a732673cc5 58 {
Giamarchi 5:46a732673cc5 59 k++; // incrémente pour lire le prochain caractère
Giamarchi 5:46a732673cc5 60 }
Giamarchi 5:46a732673cc5 61
Giamarchi 3:c75f8eddeaf4 62 }
Giamarchi 5:46a732673cc5 63 if(pc.readable()) // Si appui caractère au clavier
Giamarchi 5:46a732673cc5 64 {
Giamarchi 5:46a732673cc5 65 tab[ptr] = pc.getc(); // Mémorise le caractère et vide le registre de réception
Giamarchi 5:46a732673cc5 66
Giamarchi 5:46a732673cc5 67 if((tab[ptr] == 0x0A) || (tab[ptr] == 0x0D)) // Test touche entrée en mode ASCII
Giamarchi 5:46a732673cc5 68 {
Giamarchi 5:46a732673cc5 69 tab[ptr] = 0; // Transforme le tableau en chaine de caractères
Giamarchi 5:46a732673cc5 70 ptr = 0;
Giamarchi 5:46a732673cc5 71 printStr(tab); // Envoi le texte vers le BT
Giamarchi 5:46a732673cc5 72 printStr("\r\n");
Giamarchi 5:46a732673cc5 73 }
Giamarchi 5:46a732673cc5 74 else
Giamarchi 5:46a732673cc5 75 {
Giamarchi 5:46a732673cc5 76 ptr++;
Giamarchi 5:46a732673cc5 77 }
Giamarchi 5:46a732673cc5 78 }
Giamarchi 5:46a732673cc5 79
Giamarchi 1:95172f59262a 80 } // Fin du while(1)
Giamarchi 2:c1a4641eeacf 81 //==============================================================================
Giamarchi 2:c1a4641eeacf 82 } // Fin du Programme
Giamarchi 2:c1a4641eeacf 83 //==============================================================================