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]
|