No se pueden recibir datos GPS del módulo GPS Quectel L80

Tengo un módulo GPS Quectel L80 con PIC24fj128ga202. Estoy usando UART2 para obtener datos de GPS del módulo y transfiero los datos recibidos a la hiperterminal, usando UART1. Entre PIC y PC I hay un convertidor RS3232. Aquí no obtuve datos de respuesta del módulo GPS en hiperterminal.

Mi código:

void silicon(void)
{
    OSCCON = 0x0000;
    CLKDIV   =  0x0000;  
    OSCTUN = 0; 
    RPINR18bits.U1RXR   = 7;
    RPOR4bits.RP8R  =   3;
    RPINR19bits.U2RXR   = 14;
    RPOR6bits.RP13R  =   5;      
    ANSA = 0x0000;
    ANSB = 0x0000;
    PORTA = 0x0000;
    TRISA = 0x0000;
    PORTB = 0x0000;
    TRISB = 0xc000;
    U1MODE = 0x0000;
    U1STA = 0x0400;     
    U1BRG = 25;
    U1MODEbits.UARTEN = 1;
    U2STA = 0x0400;     
    U2BRG = 25;
    U2MODEbits.UARTEN = 1;
    PORTBbits.RB15=1;
    TMR1 = 0;
    while (TMR1 < DELAY)
    {

    }
    PORTBbits.RB15 =0;
    TMR1 = 0;
    while (TMR1 < DELAY)
    {

    }        
}

void uartsend(char in_c)
{
    while(U1STAbits.UTXBF != 0);
    U1TXREG = in_c;
}

char uartrec()
{
    char c;
    while(U1STAbits.URXDA == 0); 
    c = U1RXREG;
    return c;   
}
void uartsend2(char in_c)
{
    while(U2STAbits.UTXBF != 0);
    U2TXREG = in_c;
}

char uartrec2()
{
    char c;
    while(U2STAbits.URXDA == 0); 
    c = U2RXREG;
    return c;   
}

int main()
{
    int i,j;
    led = 1;
    silicon();
    while(1)
    {
        uartsend(uartrec2());
        led =!led;
        for(j=0;j<250;j++)
        {
            for(i=0;i<1275;i++);
        }
    }
    return 0;
}
¿Puedes enviar algo más con UART1 a la hiperterminal, como uartsend('T');:?
¿Por qué hay un retraso tan grande después de que se procesa cada carácter? (250*1275 = 318750 iteraciones del ciclo interno)
Haz que cada EUSART funcione solo primero. Conecta PC a 2, prueba. Conectar PC a 1, prueba. Conectar GPS a 1, prueba. Parpadea un LED o algo cuando ingresan datos. Luego conecta el GPS a 2, prueba. Luego conecte la PC a 1. Una vez que esté seguro de que ambos funcionan según lo previsto, prepárese para algunas tonterías al hacer que el PIC "buffer" los datos bidireccionalmente. Terminé usando interrupciones para ambos EUSART, ya que el sondeo y los retrasos eran demasiado lentos.
uart1 funcionando bien@bence

Respuestas (1)

Cuando no hay una antena conectada externamente, el módulo vuelve a la antena interna. Según su descripción, está probando en interiores que no son un entorno adecuado para L80. Por favor, compruebe esto en condiciones de cielo abierto.