原始数据
$GPGGA,082838.000,3018.1272,N,12020.4354,E,1,6,1.28,69.5,M,7.1,M,,*5F
$GPGLL,3018.1272,N,12020.4354,E,082838.000,A,A*5B
$GPGSA,A,3,01,07,08,21,27,30,,,,,,,1.58,1.28,0.92*05
$GPGSV,2,1,07,21,64,145,42,08,62,008,43,07,61,293,38,01,42,178,37*77
$GPGSV,2,2,07,27,29,043,16,30,28,315,28,193,,,*4F
$GPRMC,082838.000,A,3018.1272,N,12020.4354,E,0.08,45.16,230221,,,A*52
$GPVTG,45.16,T,,M,0.08,N,0.14,K,A*06
查找','的位置函数
typedef unsigned char u8;
char getChAdd(char *p,u8 lenth,char ch,u8 n)
{
u8 i = 0;
u8 cont = 0;
for(i = 0;i<lenth;i++)
{
if(*(p+i) == ch)
cont ++;
if(cont == n)
{
return i;
}
}
return -1;
}
过滤出$GPRMC一行数据
思想:
1.在串口中断中启动定时