Problème avec ReadUsart et Lcd
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

Problème avec ReadUsart et Lcd



  1. #1
    invite9b5fc0a6

    Problème avec ReadUsart et Lcd


    ------

    Bonjour à tous,

    Voilà pour l'instant je travail avec un modèle telit gm-862 (gps+gsm) et plus particulièrement avec la partie GSM. En effet j'envoie des commande "AT" que je réceptionne sur un LCD via l'usart d'un pic 18f452. Je programme avec Mplab mcc18.

    Voici mon problème. J'envoie donc une la commande AT et je réceptionne bien sur mon LCD "AT OK". J'essaye ensuite d'envoyer une plus longue commande, AT+CPIN?. La, je ne reçois que At puis c'est comme si ça se bloquait et je ne reçois pas la suite. Voici mon code source:

    Code:
    void main(void)
    {
      	char  data[100];
    	int i=0,j=0;
    
    	TRISA=0;
    	TRISB=0;
    	TRISC=0;
    	TRISD=0;
    
    	/*Configuration du LCD */
    	PORTDbits.RD7= 1;
    	DelayXLCD();
    	OpenXLCD(FOUR_BIT & LINES_5X7);
    	WriteCmdXLCD(SHIFT_DISP_LEFT);
    
    	  	
    /*Configuration de l'USART */
    	TRISCbits.TRISC6=0;  // TX - UART Définit l'entrée RS232
    	TRISCbits.TRISC7=1;	 //	RX - UART Définit l'entrée RS232
    	TRISB=0b00001111;
    	
    OpenUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH,51);
    SetDDRamAddr(0);
    DelayXLCD;
    DelayXLCD;
    
    WriteUSART('A');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('T');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('+');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('C');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('P');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('I');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('N');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('?');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    WriteUSART('\x0D');
    Delay1KTCYx(20);
    Delay1KTCYx(20);
    
    while(1)
    {
    i=0;
    j=0;
    do
    	{
      		while(!DataRdyUSART());
    
    		data[i] = ReadUSART() ;
    
    		i++;
    	    j=1;
    	}
    	while(j!=1);
    i=0;
    j=0;
    do
       {
    
    		WriteDataXLCD(data[i]); //write to LCD
    		DelayXLCD;
    		DelayXLCD;
    		DelayXLCD;
    		DelayXLCD;
    		DelayXLCD;
    		DelayXLCD;
    		DelayXLCD;
    		DelayXLCD;
        	i++;
    	if (i==16)
        {
           SetDDRamAddr (0x40);
        }
    	if (i==32)
        {
           SetDDRamAddr (0);
        }
    	j=1;
       }
       while (j !=1 );
    }
    CloseUSART();
    }

    Je me demande si ce n'est pas un problème avec le ReadUSART. J'ai essayé sur l'hyperterminal et je n'ai aucun souci. Tx et Rx fonctionne bien. Donc je suis un peu bloqué. Pourriez vous m'aider.

    D'avance merci.

    Bien à vous.

    -----
    Dernière modification par yoda1234 ; 31/12/2010 à 04h27. Motif: Mise en place balise "Code"

Discussions similaires

  1. probléme avec la tv lcd de lg
    Par invite282a0600 dans le forum Dépannage
    Réponses: 1
    Dernier message: 14/12/2007, 02h30
  2. [Brun] problème avec tv lcd samsung
    Par invite091f29b5 dans le forum Dépannage
    Réponses: 2
    Dernier message: 18/11/2007, 19h54
  3. Problème avec écran LCD
    Par invitebbbd50c8 dans le forum Matériel - Hardware
    Réponses: 9
    Dernier message: 30/04/2006, 10h23
  4. Problème avec un LCD
    Par invitea02ffd91 dans le forum Électronique
    Réponses: 2
    Dernier message: 27/06/2003, 01h28