TinyGPS++无法解析GPS-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2985|回复: 4

[未解决] TinyGPS++无法解析GPS

[复制链接]
发表于 2021-7-19 22:22 | 显示全部楼层 |阅读模式
RT,做了个GPS定位器,gps芯片获取位置以后把相关信息打印到LCD1602和OLED屏幕上,但是实际使用过程中经纬度坐标始终不显示,请问应该如何解决?使用的是NodeMCU、LCD1602_IIC


[md]```
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <gfxfont.h>
#include <Adafruit_SPITFT_Macros.h>
#include <Adafruit_SPITFT.h>
#include <Adafruit_GrayOLED.h>
#include <Adafruit_GFX.h>
#include <splash.h>
#include <Adafruit_SSD1306.h>
#include <LiquidCrystal_I2C.h>
TinyGPSPlus gps;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial ss = SoftwareSerial(D3, D4);
void setup() {
        ss.begin(9600);
        display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
        display.clearDisplay();
        display.setTextSize(1);
        display.setTextColor(SSD1306_WHITE);
        display.setCursor(20, 20);
        display.print("Initiziling...");
        display.display();
        lcd.init();
        lcd.clear();
        lcd.backlight();
        lcd.setCursor(0, 0);
        lcd.print("Initiziling...");
        delay(2000);
}
void loop() {
        lcd.clear();
        display.clearDisplay();
        while (ss.available() > 0) {
                gps.encode(ss.read());
                lcd.clear();
                display.clearDisplay();
                if (gps.location.isValid()) {
                        lcd.clear();
                        lcd.setCursor(0,0);
                        lcd.print("Lat:");
                        lcd.print(gps.location.lat());
                        lcd.print(" N");
                        lcd.setCursor(0, 1);
                        lcd.print("Lon:");
                        lcd.print(gps.location.lng());
                        lcd.print(" N");
                }
                else {
                        lcd.clear();
                        lcd.setCursor(0, 0);
                        lcd.print("Lat:");
                        lcd.print("*********");
                        lcd.setCursor(0, 1);
                        lcd.print("Lon:");
                        lcd.print("*********");
                }//程序修改
                if (gps.date.isValid() || gps.time.isValid() ||gps.altitude.isValid() || gps.satellites.isValid()) {
                        display.clearDisplay();
                        display.setCursor(0, 0);
                        display.println("UTC Time: ");
                        display.print(gps.date.year());//2021/03/12 12:23:
                        display.print("/");
                        display.print(gps.date.month());
                        display.print("/");
                        display.print(gps.date.day());
                        display.print(" ");
                        display.print(gps.time.hour());
                        display.print(":");
                        display.print(gps.time.centisecond());
                        display.print(":");
                        display.println(gps.time.second());
                        display.println("Beijing Time: ");
                        display.print(gps.date.year());//2021/03/12 12:23:
                        display.print("/");
                        display.print(gps.date.month());
                        display.print("/");
                        display.print(gps.date.day());
                        display.print(" ");
                        display.print((gps.time.hour()+8));
                        display.print(":");
                        display.print(gps.time.centisecond());
                        display.print(":");
                        display.println(gps.time.second());
                        display.print("SatellitesCount: ");
                        display.println(gps.satellites.value());
                        display.print("Altitude: ");
                        display.print(gps.altitude.meters());
                        display.println("M");
                        display.print("Course: ");
                        display.println(gps.course.deg());
                        display.print("Speed: ");
                        display.print(gps.speed.kmph());
                        display.print("Km/h");
                        display.display();
                }
                else {
                        display.clearDisplay();
                        display.setCursor(20, 20);
                        display.print("Please Waiting...");
                        display.display();
                }
        }
}

```[/md]
发表于 2021-7-20 16:45 | 显示全部楼层
自己手动解析下就行了
发表于 2021-7-20 21:46 | 显示全部楼层
Serial.begin(9600);
发表于 2021-7-20 22:17 | 显示全部楼层
我用的是neo gps
发表于 2021-7-20 23:49 | 显示全部楼层
你先要用一个usbttl连接neo gps看看有没有gps数据出现,确保gps运行的频率和软串口是一致的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 04:00 , Processed in 0.104887 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表