求助帖关于GPS时间转换成北京时间的-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4168|回复: 1

求助帖关于GPS时间转换成北京时间的

[复制链接]
发表于 2018-12-16 09:24 | 显示全部楼层 |阅读模式
求助社区里的各位大佬,怎么在下面的代码加个让GPS获取的时间在1602LCD屏幕上实时显示出来,我找了好多资源都用不了

#include <TinyGPS.h>
#include <LiquidCrystal.h>



TinyGPS gps;
LiquidCrystal lcd(12, 11, 2, 3, 4, 5);              //LCD driver pins
int led = 13;

long lat, lon;
unsigned long fix_age, time, date, speed, course;
unsigned long chars;
unsigned short sentences, failed_checksum;
//int year;
//byte month, day, hour, minute, second, hundredths;

int DEG;
int MIN1;
int MIN2;

void LAT(){                       //Latitude state
  DEG=lat/1000000;
  MIN1=(lat/10000)%100;
  MIN2=lat%10000;

  lcd.setCursor(0,0);             // set the LCD cursor   position
  lcd.print("LAT:");              
  lcd.print(DEG);
  lcd.write(0xDF);
  lcd.print(MIN1);
  lcd.print(".");
  lcd.print(MIN2);
  lcd.print("'   ");
}
void LON(){                        //Longitude state
  DEG=lon/1000000;
  MIN1=(lon/10000)%100;
  MIN2=lon%10000;

  lcd.setCursor(0,1);              // set the LCD cursor   position
  lcd.print("LON:");              
  lcd.print(DEG);
  lcd.write(0xDF);
  lcd.print(MIN1);
  lcd.print(".");
  lcd.print(MIN2);
  lcd.print("'   ");
}

void setup()
{
  Serial.begin(9600);            //Set the GPS baud rate.

  pinMode(led, OUTPUT);  

  lcd.begin(16, 2);               // start the library
  lcd.setCursor(0,0);             // set the LCD cursor   position
  lcd.print("GPS test");          // print a simple message on the LCD
  delay(2000);
}

void loop()
{







  while (Serial.available())
  {
    digitalWrite(led, HIGH);
    int c = Serial.read();                   // Read the GPS data
    if (gps.encode(c))                        // Check the GPS data
    {
      // process new gps info here
    }

  }
  digitalWrite(led, LOW);
  gps.get_position(&lat, &lon, &fix_age);     // retrieves +/- lat/long in 100000ths of a degree
  gps.get_datetime(&date, &time, &fix_age);   // time in hhmmsscc, date in ddmmyy

  //gps.crack_datetime(&year, &month, &day,    //Date/time cracking
  //&hour, &minute, &second, &hundredths, &fix_age);  

LAT();
LON();

}

发表于 2019-2-10 19:28 | 显示全部楼层
$GPRMC,095609.00,A,3057.64xxx,N,12126.69xxx,E,GPRMC后面的一串数字是UTC时间,+8个小时就是北京时间了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 04:38 , Processed in 0.200647 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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