把$GPGLL,2241.37663,N,11406.00203,E,153309.00,A,A*65"在keil编译器中,用c语言把2241.37663和11406.00203获取出来
时间: 2023-10-25 20:08:10 浏览: 66
可以使用字符串处理函数来获取这两个数据。首先需要找到字符串中"N,"和"E,"的位置,然后再从这两个位置开始往后依次读取数字字符,直到遇到非数字字符为止。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "GPGLL,2241.37663,N,11406.00203,E,153309.00,A,A*65";
char *ptr;
double lat, lon;
ptr = strstr(str, "N,");
if (ptr != NULL) {
sscanf(ptr+2, "%lf", &lat);
}
ptr = strstr(str, "E,");
if (ptr != NULL) {
sscanf(ptr+2, "%lf", &lon);
}
printf("Latitude: %lf\n", lat);
printf("Longitude: %lf\n", lon);
return 0;
}
```
输出结果:
```
Latitude: 2241.376630
Longitude: 11406.002030
```
相关问题
$gprmc,022115.00,a,3020.24202,n,11212.52953,e,0.274,,270422,,,a*7b $gpvtg,,t,,m,0.274,n,0.507,k,a*20 $gpgga,022115.00,3020.24202,n,11212.52953,e,1,06,1.59,62.2,m,-17.3,m,,*42 $gpgsa,a,3,21,04,08,01,09,27,,,,,,,3.27,1.59,2.85*04 $gpgsv,2,1,06,01,15,175,32,04,27,202,40,08,81,347,26,09,36,242,33*73 $gpgsv,2,2,06,21,39,148,20,27,45,037,24*7f $gpgll,3020.24202,n,11212.52953,e,022115.00,a,a*62
这是一段GPS数据,包含了当前位置的经纬度、海拔高度等信息。其中,$gprmc表示推荐最小定位信息,$gpvtg表示地面速度信息,$gpgga表示GPS定位信息,$gpgsa表示GPS DOP和活动卫星信息,$gpgsv表示可见卫星信息,$gpgll表示纬度和经度的位置。这段数据可以被GPS接收器或其他相关设备读取并处理。
$gpvtg,,,,,,,,,n*30 $gpgga,,,,,,0,00,99.99,,,,,,*48 $gpgsa,a,1,,,,,,,,,,,,,99.99,99.99,99.99*30 $gpgsv,1,1,01,04,,,08*74 $gpgll,,,,,,v,n*64
这是一串GPS数据,包括了以下几个信息:
- $GPVTG:航向和地速信息
- $GPGGA:GPS定位信息
- $GPGSA:GPS卫星状态信息
- $GPGSV:可见卫星信息
- $GPGLL:地理位置信息
其中,$GPVTG信息中的n*30表示航向信息的校验和;$GPGGA信息中的0,00表示海拔高度和大地水准面高度,99.99表示这些信息无效;$GPGSA信息中的99.99表示PDOP、HDOP和VDOP的值无效;$GPGSV信息中的1,1,01表示可见卫星的总数和本次信息中被解析出的卫星数量,04表示第一个卫星的PRN号码,,,,08表示第一个卫星的信噪比信息;$GPGLL信息中的v表示GPS接收器的状态,n表示北纬。
阅读全文