huangshan78 发表于 2014-5-9 21:36:15

GPS时间

我丛书中抄了一段代码在Uno中可以运行,但是会慢10多秒。在mega上可以很准确,但是开机自检不了,要拔掉GPS的TXD一会才可以运行。麻烦老鸟帮我看看。
#include <TinyGPS.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);//定义LCD引脚定义
TinyGPS gps;
void getgps(TinyGPS &gps);

void setup()
{
Serial.begin(4800);//GPS通信波特率
lcd.begin(16,2);//LCD定义
}

void getgps(TinyGPS &gps)//抓取GPS数据
{
int year,a,t;
byte month,day,hour,minute,second,hundredths;
gps.crack_datetime(&year,&month,&day,&hour,&minute,&second,&hundredths);
hour=hour+8;//时区校正
if(hour>23)
{
    hour=hour-24;
}
lcd.setCursor(0,0);//显示日期和时间
lcd.print("GPS Time:");
lcd.setCursor(4,1);
if (hour<10)
{
    lcd.print("0");
}
lcd.print(hour,DEC);
lcd.print(":");
if(minute<10)
{
    lcd.print("0");
}
lcd.print(minute,DEC);
lcd.print(":");
if(second<10)
{
    lcd.print("0");
}
lcd.print(second,DEC);
}

void loop()
{
byte a;
if(Serial.available()>0)//如果串口有数据
{
    a = Serial.read();//获得一个字节的数据
    if(gps.encode(a))//如果有效数据
    {
      getgps(gps);//抓取数据并显示在LCD
    }
}
}

学慧放弃 发表于 2014-5-9 23:16:45

完全不懂,可以参考其他的
页: [1]
查看完整版本: GPS时间