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.
-----