Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Envoi d'une commande en UART
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#1 Message par Jérémy » mar. 27 nov. 2018 20:58

Bonsoir à tous,

Je suis en train de m'essayer au GPS.

Après une petite modification Hard ( soudure d'une antenne externe) , je reçois mes trames NMEA en étant eu chaud sur mon bureau :-D

Le HIC c'est que d'origine le module reçoit énormément de trame. J'aurais donc voulu simplifié ces envois .
Voici une série de trame que je reçois d'un coup !
Sans titre.jpg


Il me semble d'avoir compris en regardant la DS que je peux simplifier les envois de trames .
lien vers la DS : https://docs-emea.rs-online.com/webdocs ... 47dbed.pdf

EN PAGE 29 33.21. Packet Type: 314 PMTK_API_SET_NMEA_OUTPUT 3

Oui mais alors quelle est la meilleure façon d'envoyé par UART cette commande !
$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29<CR><LF>

Avez vous une idée ? car faire caractère par caractère ça risque d’être long !

Merci !
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Envoi d'une commande en UART
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#2 Message par Jérémy » mar. 27 nov. 2018 23:20

Ok j'a ifini par trouvé !

Code : Tout sélectionner


char Command_Trame
[] = "$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29\r\n\0";
-
-
-
-

void command(){
   char Compteur=0;
  
  while 
(Command_Trame[Compteur] != 0){
        UART1_Write(Command_Trame[Compteur]);
        Compteur++;
    }
}


Je ne reçois que deux trames maintenant

Code : Tout sélectionner


$GPRMC
,221926.086,V,,,,,0.00,0.00,271118,,,N*43                               
$GPTXT
,01,01,02,ANTSTATUS=OK*3B                                               
$GPRMC
,221927.086,V,,,,,0.00,0.00,271118,,,N*42                               
$GPTXT
,01,01,02,ANTSTATUS=OK*3B


Cela libère beaucoup de temps a mon pauvre UART !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Envoi d'une commande en UART
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#3 Message par JMarc » mer. 28 nov. 2018 05:58

Bonjour Jeremy


Félicitations, mais je comprends mal le C, tu envoi

Code : Tout sélectionner

$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29\r\n\0"

Au module gps ?

Et la chaîne que tu reçois tu a réussi à retrouver la position ?

Envoi d'une commande en UART
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#4 Message par Jérémy » mer. 28 nov. 2018 07:52

Bonjour JMArc,

Oui je dois envoyer cette chaine de caractère au module pour le configurer. La variable à "1" c'est pour la trame GPRMC toute les autres à zéro ainsi je ne reçois que celle ci .

Sinon je les recevais toutes soit 768 caracteres toutes les secondes , mon UART aurait passé son temps dans l'interruption! Ce que je ne peux pas me permettre !

Ensuite oui je récupère la réponse pour l'analyser . Mais j'avoue ne pas trop savoir quelles technique adopter. car il faut décortiquer la trame reçu, puis la stocker puis effectuer des calculs dessus .

Je pense que ça fera l'objet d'un autre post !
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 46 invités