Commandes AT et langage C
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Commandes AT et langage C



  1. #1
    mitonin

    Commandes AT et langage C


    ------

    Bonjour tout le monde !

    J'aimerais contrôler un module GSM avec un microcontroleur via l'USART. Je me demandais comment intégrer des commandes AT dans mon code en langage C. Dois-je les faire passer dans des putchar? Recevrais-je les réponses en getchar?


    Voili Voilou, merci d'avance de vos réponses.

    Cordialement,

    Mitonin

    -----

  2. #2
    luc_1049

    Re : Commandes AT et langage C

    Bonjour

    Si vous procédez comme cela il vous faut modifier dans le compilateur la fonction putch() dans laquelle vous direz quelle est la sortie par défaut par exemple une interface série.
    De mêmepour le flux d'entrée stdin.

    Ou faire autrement si vous avez dédié cette liaison série à une console de debug envoyant des traces du logiciel.

    cdlt

  3. #3
    Jack
    Modérateur

    Re : Commandes AT et langage C

    Ca dépend du système: s'il y a un OS type linux par exemple, le port série est considéré comme un fichier. On stocke la trame dans un tableau que l'on balance sur le port série avec la fonction write() en bas niveau ou la fonction fwrite() de la librairie stdio.

    Sans OS, certain compilateurs permettent en effet d'utiliser printf() par exemple en rédéfinissant la fonction élémentaire permettant d'envoyer un caractère: putch() ou putchar().

    A+

  4. #4
    MiKL.66

    Re : Commandes AT et langage C

    Bonjour,

    Quelle famille de microcontrôleur ?
    Quel compilateur ?

  5. A voir en vidéo sur Futura
  6. #5
    mitonin

    Re : Commandes AT et langage C

    merci pour vos réponses.


    microcontroleur ATxmega, avec compilateur atmel (et codevison)

  7. #6
    MiKL.66

    Re : Commandes AT et langage C

    Je ne connais pas les produits Atmel ...

    De manière générale, les fonctions comme printf, write, etc ... sont intégrées dans le compilateur.
    Suivant le port que tu utilises, il va peut être falloir les rediriger (chose un peu galère sur Microchip) ... ou sinon tu créés ta propre fonction d'écriture et de lecture !

  8. #7
    mitonin

    Re : Commandes AT et langage C

    Oui oui, les fonctions putchar et getchar existent, et sont redirigées vers l'usart.

    Mais ces fonctions sont faites pour envoyer ou recevoir des "char", or moins je veux transmettre des commandes AT.

    Que dois-je envoyer ? Car je suppose que je ne peux pas mettre comme paramètre une commande AT.

    N'ya t-il pas moyen d'envoyer directement des commandes ?

    Cordialement,

    mitonin

  9. #8
    Jack
    Modérateur

    Re : Commandes AT et langage C

    Mais ces fonctions sont faites pour envoyer ou recevoir des "char", or moins je veux transmettre des commandes AT.
    Eh bien où est le problème alors? Les commandes AT sont constituées de caractères.

  10. #9
    mitonin

    Re : Commandes AT et langage C

    c'est pas faux.

    Mais bon si je dois envoyer un par un chaque caractère de commande, c'est assez fastidieux ^^

    Je pensais qu'il existait des variantes/réglages qui fassent que je puisse envoyer mes codes comme ça.

    Il me semblait avoir lu (mon problème c'est que je ne sais plus où) qu'il était possible, via une ou deux instructions, de paramétrer le micro pour pouvoir envoyer directement les commandes.


    Mais bon si ça ne dit rien à personne j'ai peut être rêvé et je passerai par les char.

  11. #10
    Bluedeep

    Re : Commandes AT et langage C

    Ne pas oublier qu'un fprintf met un 0 binaire en fin de flux, alors que les commandes AT attendent un CR/LF en fin de chaine.

  12. #11
    Jack
    Modérateur

    Re : Commandes AT et langage C

    Mais bon si je dois envoyer un par un chaque caractère de commande, c'est assez fastidieux ^^
    Heu, tu es sûr de connaitre un peu la programmation? Les boucles, ça te dit quelque chose?

  13. #12
    mitonin

    Re : Commandes AT et langage C

    oui oui ^^

    mais bon même avec des boucles et une petite fonction je trouve ça plus fastidieux que de juste rentrer les commandes.

    @Bluedeep

    j'utilise putchar et getchar et non fprintf

    mais merci quand même

  14. #13
    Jack
    Modérateur

    Re : Commandes AT et langage C

    je trouve ça plus fastidieux que de juste rentrer les commandes.
    Qu'entends-tu par "juste entrer les commandes"?

    De plus, je ne vois pas ce qui est fastidieux. Une fois la commande programmée, il suffit de l'appeler à volonté.

    En fait je ne comprends pas bien ce que tu attends exactement. Un exemple?

  15. #14
    paulfjujo

    Re : Commandes AT et langage C

    bonsoir,

    Citation Envoyé par mitonin Voir le message
    .....je trouve ça plus fastidieux que de juste rentrer les commandes.
    j'utilise putchar et getchar et non fprintf ...
    ...
    il suffit d'utiliser une fonction pour envoyer un string (chaine de characteres) au lieu de putchar individuels.

    exemple pour init d'un module blue tooth YC-MCU
    les commandes AT sont effectivement bien constituees de caracteres !

    Code:
    int PutStrR_RS(rom char *s)
    {
    	int n;
    	for (n = 0; *s; n++, s++)
    	{
           	Put_RS(*s);
         	}
    	return n;
    }
    
    
    void  Init_BT_YC_MCU()
    { 
        
        LCD_putcmd(LCD_CLEAR,1);  // LCD Clear
        LCD_putcmd(LCD_HOME,1);   // LCD Home
     
         dummy=PutStrR_RS("AT");         // Enter command mode
        LCD_putcmd(LCD_LINE1,1);
        LCD_putsRom("AT> ");
        dialogue=Get_reponse(); 
        Delay10KTCYx(100); // 1 sec 
       
        dummy=PutStrR_RS("AT+NAMElinvor");// Name of device
        LCD_putcmd(LCD_LINE2,1);
        LCD_putsRom("NAME> ");
        dialogue=Get_reponse();
        Delay10KTCYx(100); 
     
        dummy=PutStrR_RS("AT+PIN1234");  // Security pin code (mikroe)
         LCD_putcmd(LCD_LINE3,1);
        LCD_putsRom("PIN> ");
        dialogue= Get_reponse(); 
         Delay10KTCYx(100); 
       
        dummy=PutStrR_RS("AT+BAUD4");    //9600 bauds
    
         LCD_putcmd(LCD_LINE4,1);
        LCD_putsRom("BAUD= ");
        dialogue=Get_reponse();
     
        Delay10KTCYx(1000); 
         }
    PutStrR_RS peut etre simplifiée en ne comptant pas le nombre de caracteres , ni le renvoi de ce comptage.

  16. #15
    Bluedeep

    Re : Commandes AT et langage C

    Citation Envoyé par mitonin Voir le message
    j'utilise putchar et getchar et non fprintf

    mais merci quand même
    Cette phrase est une plaisanterie ... ou vraiment vous êtes sérieux ? (auquel cas c'est inquiétant).

Discussions similaires

  1. Commandes AT
    Par electro575 dans le forum Électronique
    Réponses: 2
    Dernier message: 07/03/2013, 17h32
  2. langage C avec l'invite de commandes
    Par flower22 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 17/11/2009, 16h10
  3. Commandes MMC via SPI
    Par invite24eebdfe dans le forum Électronique
    Réponses: 2
    Dernier message: 07/05/2008, 21h46
Découvrez nos comparatifs produits sur l'informatique et les technologies.