Programme GPS prendre trame GPS

Bonjour,
Alors voila j’aimerai Prendre la trame GPS que je reçois sur ??le port de série et le mettre sur le programme pour que je puisse l’envoyer par sms
pouvez vous m’aider ?
Merci

/* $Id: GPS.pde 131 2013-09-17 07:31:13Z et $ */
/* 
 * 23/04/2013
 * BA
 * (c) ERM automatismes industriels
 */

// Matériel nécessaire :
// - platine Arduino UNO
// - platine GPS

// Bibliothèques nécessaires :
// - NewSoftSerial.zip
// - AdafruitGPS.zip
//   à décompresser dans le dossier C:\<arduino_ide>\libraries

// Occupation des broches de la carte UNO :
// - D7  -> Tx : c'est la broche de transmission, données qui proviennent du module GPS avec les données de localisation
// - D8  -> Rx : c'est la broche de réception, données qui vont vers le module GPS pour le configurer

/*
  Application GPS
  Module GPS utilisé : GlobalTop FGPMMOPA6H 
  
*/

// Gestion des bibliothèque en fonction de la version du logiciel Arduino
#include <Adafruit_GPS.h>
#if ARDUINO >= 100
 #include <SoftwareSerial.h>
#else
 #include <NewSoftSerial.h>
#endif

// Configuration des pins RX et TX pour chacune des bibliothèques pouvant être utiulisées suivant la version du logiciel Arduino 
#if ARDUINO >= 100
  SoftwareSerial mySerial(8, 7);
#else
  NewSoftSerial mySerial(8, 7);
#endif
Adafruit_GPS GPS(&mySerial);


// Activé GPSECHO permet de visualiser les trames GPS brutes
#define GPSECHO  true

// Ceci permet de vérifier si l'interruption est utilisée
boolean usingInterrupt = false; //Interruption désactivée par défaut
void useInterrupt(boolean); // Prototype de la fonction de configuration de l'interruption 

void setup()  
{    
  Serial.begin(115200);             // Vitesse de communication entre la carte microcontrôleur et le PC
  Serial.println("analyseur GPS");  // Ecrire le titre avec saut de ligne à la fin

  GPS.begin(9600);                  // Configuration de la vitesse de transmisiion du module GPS
  
  // Choix des trames GPS à consulter : GGA, GSA, GSV et RMC 
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
  
  // Consulter les données GPS à une fréquence de 1Hz
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);

  // permet de connaitre le statut de l'antenne (PGTOP 11,x; x=3 antenne externe ; x=2 antenne interne; x=1 antenne en defaut)
  GPS.sendCommand(PGCMD_NOANTENNA);

  useInterrupt(true);
  
  delay(1000);
}

// L'interruption est appelée toutes les millisecondes, cherche de nouvelles données GPS, puis les envoie sur la liaison UART USB
SIGNAL(TIMER0_COMPA_vect) {
  char c = GPS.read();
  if (GPSECHO)
    if (c) UDR0 = c;  
    //L'écriture directe dans UDR0 est beaucoup plus rapide que Serial.print mais seulement un caractère peut être écrit à la fois.
}

void useInterrupt(boolean v) {
  if (v) {
    // Configure TIMER0 pour avoir une interruption toutes les millisecondes 
    OCR0A = 0xAF;
    TIMSK0 |= _BV(OCIE0A);
    usingInterrupt = true;
  } else {
    
    TIMSK0 &= ~_BV(OCIE0A);
    usingInterrupt = false;
  }
}

void loop()           
{}

bonjour, un seul post suffit, non?

enfin là, tu traite que la partie gps.

Oui mais je ne veut que recuperer une trame du port serie et le mettre dans le programme. Apres je sais le faire

Les trames NMEA commencent par un $ et se terminent par une suite CR+LF. Donc c'est pas trop dur. Tu lis les caractères entrants et tu les rejettes jusqu'à trouver le $. Ensuite tu lis les suivants et tu les places dans un tampon jusqu'à trouver le terminateur LF. Tu termines la chaîne dans ton tampon en plaçant un 0 à la dernière position. Il ne te rete plus qu'à l'envoyer.