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