Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 //Program d'émission/reception et traitement d'SMS 00002 #include "mbed.h" 00003 00004 //DigitalOut myled(LED1); 00005 //Module GSM connecté sur les pin 13 et 14 00006 Serial GSM(p13,p14); 00007 //Declaration de l'interface serie du PC 00008 Serial pc(USBTX,USBRX); 00009 00010 //Flush serial buffer 00011 void FlushGSM(void) { char char1 = 0; while (GSM.readable()) { char1 = GSM.getc(); } return; } 00012 00013 int main() { 00014 int CPIN = 1234;//Code PIN de la carte SIM 00015 char NumTel[] = "0600000000"; 00016 unsigned char i = 0; 00017 unsigned char j = 0; 00018 unsigned char CtrlZ = 0x1A; 00019 bool Flag = false; 00020 char r[]=""; //Chaine de caractère pour récupérer les réponses du module GSM 00021 GSM.baud(115200);//Vitesse de com avec le module GSM à 11520 Bauds 00022 GSM.format(8,Serial::None,1); //Format de la trame serie 00023 00024 //Envoi du code PIN de la puce 00025 GSM.printf("AT+CIND=%d",CPIN); 00026 00027 while(!GSM.readable()){;}//Attente de la réponse du module 00028 //Récupération de la réponse 00029 while(GSM.readable()) 00030 { 00031 r[i] = GSM.getc(); 00032 i++; 00033 } 00034 //Si le Code pin entré est correcte, la SIM répondra par un OK 00035 //Donc, il faut chercher la chaine OK dans la réponse 00036 for(j=i-1;j--;0) 00037 { 00038 if((r[i]=='K')||(r[i]=='O')) 00039 { 00040 pc.printf("Code PIN correct !!!\r\n"); 00041 } 00042 else 00043 { 00044 pc.printf("Erreur code PIN !!!\r\n"); 00045 return 0; 00046 } 00047 } 00048 //Configuration des SMS en mode Text 00049 GSM.printf("AT+CMGF=1"); 00050 FlushGSM();//vider le buffer de reception 00051 00052 //Envoi d'un SMS à l'autre système pour lui signaler que le programme tourne 00053 GSM.printf("AT+CMGS=%s",NumTel); 00054 //Récupération de la réponse et recherche du caractère ">" 00055 while(GSM.readable()) 00056 { 00057 if(GSM.getc()=='>') 00058 { 00059 Flag = true; 00060 } 00061 } 00062 if(Flag==true) 00063 { 00064 //Ecriture de l'SMS 00065 GSM.printf("Essai !!!"); 00066 //Validation de l'envoi avec le caractère Ctrl+Z 00067 GSM.printf("%c",CtrlZ); 00068 //Attente de la réponse suite à l'envoi 00069 while(!GSM.readable()){;} 00070 i=0; 00071 while(GSM.readable())//Récupération de la réponse dans r[] 00072 { 00073 r[i]=GSM.getc(); 00074 i++; 00075 } 00076 00077 } 00078 else 00079 { 00080 pc.printf("Terminal error !!!"); 00081 return 0; 00082 } 00083 00084 while(1) { 00085 00086 } 00087 }
Generated on Fri Jul 15 2022 09:05:14 by
1.7.2