|
接着上贴(坚持发帖尽管今天满课)这贴写写LinkIt ONE 的GPS:
首先将GPS天线连上:
GPS库:
#include
如何获取GPS数据呢?
使用getData()函数获取 GPS信息
该函数的参数为 GPS 信息的结构
在此结构的GPGGA 部分具备了 位置是否锁定、多少可见的卫星与经度纬度。
使用 nextToken() 来解析 GPGGA 文件里的数据,解析结果将令牌(token)存入缓冲存储。
解析后的数据:
第一令牌为$GPGGA,
第二为 UTC 时间,
第三与第六为纬度与经度;
第七为 GPS 是否达到定位的显示;
第八为可见的卫星数目。
下面来获取我当前的地理位置的代码:
- #include <LGPS.h>
- gpsSentenceInfoStruct info;
- const char *nextToken(const char* src, char* buf)
- {
-
- int i = 0;
- while(src[i] != 0 && src[i] != ',')
- i++;
- if(buf)
- {
- strncpy(buf, src, i);
- buf[i] = 0;
- }
- if(src[i])
- i++;
- return src+i;
- }
- void printGPGGA(const char* str)
- {
- char latitude[20];
- char longitude[20];
- char buf[20];
- const char* p = str;
- p = nextToken(p, 0); // GGA
- p = nextToken(p, 0); // Time
- p = nextToken(p, latitude); // Latitude
- p = nextToken(p, 0); // N
- p = nextToken(p, longitude); // Longitude
- p = nextToken(p, 0); // E
- p = nextToken(p, buf); // fix quality
- if(buf[0] == '1')
- {
- // GPS fix
- p = nextToken(p, buf); // number of satellites
- Serial.print("GPS is fixed:");
- Serial.print(atoi(buf));
- Serial.println(" satellite(s) found!");
- Serial.print("Latitude:");
- Serial.println(latitude);
- Serial.print("Longitude:");
- Serial.println(longitude);
- }
- else
- {
- Serial.println("GPS is not fixed yet.");
- }
- }
- void setup() {
- Serial.begin(9600);
- LGPS.powerOn();
- }
- void loop() {
- LGPS.getData(&info);
- printGPGGA((char*)info.GPGGA);
- delay(1000);
- }
复制代码
不知道为什么在宿舍窗口测的偏离了好远到别的市了
此内容由EEWORLD论坛网友ihalin原创,如需转载或用于商业用途需征得作者同意并注明出处
|
|