Ich habe ein Quectel L80 GPS- Modul mit PIC24fj128ga202. Ich verwende UART2, um GPS-Daten vom Modul zu erhalten, und übertrage die empfangenen Daten mit UART1 an das Hyperterminal. Zwischen PIC und PC I befindet sich ein RS3232-Konverter. Hier habe ich keine Antwortdaten vom GPSmodul im Hyperterminal erhalten.
Mein Code:
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;
}
Wenn keine Antenne extern angeschlossen ist, greift das Modul selbst auf die interne Antenne zurück. Gemäß Ihrer Beschreibung testen Sie Innenräume, die für L80 nicht geeignet sind. Bitte überprüfen Sie dies unter freiem Himmel.
Bence Kaulics
uartsend('T');
?David Tweed
rdtsc
arun